我有很多级别的管道,现在我想比较两个字段,如下面:
db.collection.aggregate({ ...},
{$match:{firstfield:{$gte:"$secondfield"}}})
如何撰写此查询?
答案 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;结果基于预测的逻辑条件。