Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB——在.find()中设置条件语句_Mongodb - Fatal编程技术网

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

MongoDB——在.find()中设置条件语句,mongodb,Mongodb,对于聚合,$cond可用于形成if语句。我想知道对于.find()是否有类似的函数 当我尝试在find()中使用$cond时,我得到 我正在尝试执行以下操作(使用伪代码): 如果您使用的是Mongo 3.6或更高版本,您可以尝试使用$expr操作符。这将允许您使用$cond $expr允许在查询语言中使用聚合表达式 可以找到他们的例子 为什么不创建两个不同的查询并传递它呢?整个查询将变成一个字符串并存储在数据库中。我正试着效仿,只形成一根绳子。除非我能用一个或什么的谢谢。我可以通过mongodb

对于聚合,
$cond
可用于形成if语句。我想知道对于.find()是否有类似的函数

当我尝试在find()中使用$cond时,我得到

我正在尝试执行以下操作(使用伪代码):


如果您使用的是Mongo 3.6或更高版本,您可以尝试使用
$expr
操作符。这将允许您使用
$cond

$expr
允许在查询语言中使用聚合表达式

可以找到他们的例子


为什么不创建两个不同的查询并传递它呢?整个查询将变成一个字符串并存储在数据库中。我正试着效仿,只形成一根绳子。除非我能用一个或什么的谢谢。我可以通过mongodb compass应用程序使用它吗?
"unknown top level operator: $cond"
if condition is True:
    set filter for find to thing_1
else:
    set filter for find to thing_2
db.supplies.find( {
    $expr: {
       $lt:[ {
          $cond: {
             if: { $gte: ["$qty", 100] },
             then: { $divide: ["$price", 2] },
             else: { $divide: ["$price", 4] }
           }
       },
       5 ] }
} )