【发布时间】:2015-11-10 05:51:10
【问题描述】:
我在 mongo 中有文档,它们具有 {number1: <some number>, number2: <some other number>} 的属性此查询是聚合管道的一部分。
【问题讨论】:
标签: mongodb mongoose mongodb-query aggregation-framework
我在 mongo 中有文档,它们具有 {number1: <some number>, number2: <some other number>} 的属性此查询是聚合管道的一部分。
【问题讨论】:
标签: mongodb mongoose mongodb-query aggregation-framework
如果您需要在聚合管道中执行此操作,请使用$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 } }
【讨论】:
$cond 是一个“三元”,所以通常另一个 $cond 作为“else”的参数。否则,它只是与$and 或$or 的逻辑包含。请参阅boolean operators。但这不是您问的问题如果您还有其他问题,那么ask another question。当您在这种情况下提出其他问题或完全不同的问题时,事情会变得非常不清楚。