我在mongo中有文档,并且它们具有{number1: <some number>, number2: <some other number>}
的属性我想在不使用number1 < number2
运算符的情况下$where
进行查询(因为它不具有高性能)。此查询是聚合管道的一部分。
答案 0 :(得分:1)
如果您需要在汇总管道中执行此操作,请使用$redact
:
{ "$redact": {
"$cond": {
"if": {
"$lt": [ "$number1", "$number2" ]
},
"then": "$$KEEP",
"else": "$$PRUNE"
}
}}
它允许在单个阶段进行逻辑比较和删除。如果你有一个比2.6更旧的MongoDB,你可以$project
逻辑结果和$match
来过滤掉这些结果。
{ "$project": {
"someField": 1,
"test": { "$lt": [ "$number1", "$number2" ] }
}},
{ "$match": { "test": true } }