如何在Mongodb聚合中将字段与另一个字段进行比较?

时间:2014-04-22 09:58:23

标签: mongodb aggregation-framework

我有很多级别的管道,现在我想比较两个字段,如下面:

db.collection.aggregate({ ...},
{$match:{firstfield:{$gte:"$secondfield"}}})

如何撰写此查询?

1 个答案:

答案 0 :(得分:3)

关闭,但实际调用略有不同:

db.collection.aggregate([
    { "$project": {
        "firstfield": 1,
        "secondfield": 1,
        "difference": { "$gte": [ "$firstfield", "$secondfield" ] }
    }},
    { "$match": { "difference": true } }
])

$match调用略有不同,$project(或可能$group)表单允许在字段比较中返回true|false值。< / p>

这允许您稍后在管道中过滤$match阶段,以便&#34;包括|排除&#34;结果基于预测的逻辑条件。