如何在mongodb聚合中有条件地串联字段

时间:2018-11-25 18:27:42

标签: mongodb mongodb-query aggregation-framework

我想通过连接某些字段来构建一个字符串,但是我想在决定连接它之前检查每个字段的值。

//syntax:
{$projection:{fieldName:{$concat:["$field1","-","$field2","$field3"]}}}

我想要什么?

fieldName=($field1!=null?"$field1-":"")+"$field2"+($field3=="ok"?"approved":"pending")

1 个答案:

答案 0 :(得分:2)

对于第一种情况(空),您将使用$ifNull运算符。如果该字段为空或丢失,它将返回默认值。

对于第二种情况,请使用$cond运算符。

fieldName:{
 $concat:
 [
  {$ifNull:["$field1", ""]},
  "-",
  "$field2", 
  {$cond:[{$eq:['$field3', 'ok']}, "approved", "pending"] }
 ]
}