我试图让一个aggregation
在满足两个条件的情况下返回一个字段(在文档中),
我正在$project
阶段进行尝试,并尝试将其编写如下:
"conversionName" : { "$cond" : [ { "$and" : [ { "$eq" : [ "$webpage", "Product" ] }, { "$eq" : [ "$isConverted", true ] } ] }, "$conversion.name", 0 ] }
因此,如果网页是Product并且isConverted为true,则它将在此文档中显示conversion.name的值。
The current aggregation fails due to : "The $cond accumulator is a unary operator' on server main-shard-00-00-mhxad.gcp.mongodb.net:27017. "
聚合的其他部分工作正常。
我可以用什么方式返回一个带有$cond
推荐值的值?如果没有,还有什么其他方法可以满足我的需求?
答案 0 :(得分:0)
在我的项目中,它可以通过以下方式完美运行:
$cond: {
if: {
$and: [
{ "$eq" : [ "$webpage", "Product" ] },
{ "$eq" : [ "$isConverted", true ] },
],
},
then: "$conversion.name",
else: 0,
},
如果它不起作用(我不明白为什么不这样做),then
是一个表达式,可以是其他$cond
:
$cond: {
if: { "$eq" : [ "$webpage", "Product" ] },
then: {$cond: {if: { "$eq" : [ "$isConverted", true ] }, then: "$conversion.name", else: 0},
else: 0,
},