如何比较mongo文档中的2个属性?

时间:2015-11-09 21:45:52

标签: mongodb mongoose mongodb-query aggregation-framework

我在mongo中有文档,并且它们具有{number1: <some number>, number2: <some other number>}的属性我想在不使用number1 < number2运算符的情况下$where进行查询(因为它不具有高性能)。此查询是聚合管道的一部分。

1 个答案:

答案 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 } }