Mongodb 根据自定义比较器查询 select 小于等于

Mongodb query to select less than and equal based on custom comparator

我正在使用 mongodb 数据库,我需要 运行 基于自定义比较器的小于等于过滤器。以下是更多详情。

  1. "profile" 集合将 "level" 字段作为字符串

    {"name":"Test1", "level":"intermediate"}
    
  2. 以下为等级值及其对应的权重

    1. 新手
    2. 中级
    3. 经验丰富
    4. 前进
  3. 我想像下面这样编写查询,以便它应该 return 所有级别小于和等于 "experienced" 的配置文件集合(即包括 "novice"、"intermediate" 和 "experienced"

    db.profile.find( { level: { $lte: "experienced" } } )
    

我明白了,我需要提供自定义比较器。但是我该怎么办?

您不能在 MongoDB 查询中使用自定义比较器。可用的是:$eq, $gt, $gte, $lt, $lte, $ne, $in, $nin.

但是,您可以使用 $in 来获得您想要的:

db.profile.find( { level: { $in: [ "experienced", "intermediate ", "novice" ] } } );