MongoDB - 在.find()中设置条件语句

时间:2017-03-29 00:53:54

标签: mongodb

对于聚合,$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

1 个答案:

答案 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 ] }
} )