$匹配两个字段的总和
$match on sum of two fields
在 mongodb 聚合管道中,如何匹配两个非零字段的总和?所以我可以说下面的话给我所有 startPos 大于 10
的文件
db.strategy.aggregate(
[
{
$match: {
"startPos": {"$gt" :10}
}
},
]
);
但是我该怎么说:
db.strategy.aggregate(
[
{
$match: {
{"$subtract":["endPos","startPos"]}: {"$gt" :10} <== Clearly not legal
}
},
]
);
您可以使用 redact
来实现。
db.strategy.aggregate([
{"$redact" :
{ "$cond" : {
if : { $gt: [ {"$subtract":["$endPos","$startPos"] }, 10] },
then: "$$KEEP",
else: "$$PRUNE"
}
}
}
] );
在 mongodb 聚合管道中,如何匹配两个非零字段的总和?所以我可以说下面的话给我所有 startPos 大于 10
的文件db.strategy.aggregate(
[
{
$match: {
"startPos": {"$gt" :10}
}
},
]
);
但是我该怎么说:
db.strategy.aggregate(
[
{
$match: {
{"$subtract":["endPos","startPos"]}: {"$gt" :10} <== Clearly not legal
}
},
]
);
您可以使用 redact
来实现。
db.strategy.aggregate([
{"$redact" :
{ "$cond" : {
if : { $gt: [ {"$subtract":["$endPos","$startPos"] }, 10] },
then: "$$KEEP",
else: "$$PRUNE"
}
}
}
] );