厦门城乡住房建设厅网站首页,跑腿小程序开发,前端项目,河北石家庄新闻文章目录 语法用法举例 $cond聚合运算符根据布尔表达式的结果返回两个表达式中的一个。 
语法 
{ $cond: { if: boolean-expression, then: true-case, else: false-case } }或#xff1a; 
{ $cond: [ boolean-expression, true-caseboolean-expression, then: true-case, else: false-case } }或 
{ $cond: [ boolean-expression, true-case, false-case ] }用法 
$cond的三个参数(类似if-then-else)都是必须的如果boolean-expression计算的结果为true则$cond执行并返回true-case:表达式的值否则返回false-case表达式的值参数可以是任何合法的表达式。 
举例 
在inventory集合中有下面的文档 
{ _id : 1, item : abc1, qty: 300 }
{ _id : 2, item : abc2, qty: 200 }
{ _id : 3, item : xyz1, qty: 250 }下面的聚合管道使用$cond运算符根据qty的值来设置discount的值当qty字段的值大于等于250时discount设置为30否则设置为20 
db.inventory.aggregate([{$project:{item: 1,discount:{$cond: { if: { $gte: [ $qty, 250 ] }, then: 30, else: 20 }}}}]
)操作返回下面的结果 
{ _id : 1, item : abc1, discount : 30 }
{ _id : 2, item : abc2, discount : 20 }
{ _id : 3, item : xyz1, discount : 30 }下面的使用$cond的数组语法形式返回相同的结果 
db.inventory.aggregate([{$project:{item: 1,discount:{$cond: [ { $gte: [ $qty, 250 ] }, 30, 20 ]}}}]
)