Mongodb 根据自定义比较器查询 select 小于等于
Mongodb query to select less than and equal based on custom comparator
我正在使用 mongodb 数据库,我需要 运行 基于自定义比较器的小于等于过滤器。以下是更多详情。
"profile" 集合将 "level" 字段作为字符串
{"name":"Test1", "level":"intermediate"}
以下为等级值及其对应的权重
- 新手
- 中级
- 经验丰富
- 前进
我想像下面这样编写查询,以便它应该 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" ] } } );
我正在使用 mongodb 数据库,我需要 运行 基于自定义比较器的小于等于过滤器。以下是更多详情。
"profile" 集合将 "level" 字段作为字符串
{"name":"Test1", "level":"intermediate"}
以下为等级值及其对应的权重
- 新手
- 中级
- 经验丰富
- 前进
我想像下面这样编写查询,以便它应该 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" ] } } );