对于聚合,$cond
可用于形成if语句。我想知道.find()
当我尝试在find()中使用$ cond时,我得到了
"unknown top level operator: $cond"
我正在尝试执行以下操作(伪代码):
if condition is True:
set filter for find to thing_1
else:
set filter for find to thing_2
答案 0 :(得分:1)
如果您使用的是Mongo 3.6或更高版本,则可以尝试使用$expr
运算符。这样,您就可以使用$cond
。
$expr
允许在查询语言中使用聚合表达式。
可以找到他们的示例here
db.supplies.find( {
$expr: {
$lt:[ {
$cond: {
if: { $gte: ["$qty", 100] },
then: { $divide: ["$price", 2] },
else: { $divide: ["$price", 4] }
}
},
5 ] }
} )