在mongodb聚合管道中,如何匹配两个非零的字段之和?所以我可以说以下内容给我所有startPos大于10的文件
db.strategy.aggregate(
[
{
$match: {
"startPos": {"$gt" :10}
}
},
]
);
但我怎么说:
db.strategy.aggregate(
[
{
$match: {
{"$subtract":["endPos","startPos"]}: {"$gt" :10} <== Clearly not legal
}
},
]
);
答案 0 :(得分:1)
您可以使用redact
来实现此目标。
db.strategy.aggregate([
{"$redact" :
{ "$cond" : {
if : { $gt: [ {"$subtract":["$endPos","$startPos"] }, 10] },
then: "$$KEEP",
else: "$$PRUNE"
}
}
}
] );