我有一个带有文档的集合“结构”:
{
"case" : {
"version" : 3,
"key" : 1
},
"salle" : {
"version" : 2,
"key" : 1
}
}
然后我尝试使用$ ifNull运算符进行$ cond聚合:
db.structure.aggregate([
{
"structure" : {
"$cond": {
"if": {
"$ifNull": ["$salle", true]
},
"then": "$case.key",
"else": "$salle.key"
}
}
}
])
麻烦的是$ ifNull总是返回true并显示$ case.key,而$ salle不为空
最令人惊讶的是,我用$ not运算符得到了正确的响应:
db.structure.aggregate([
{
"structure" : {
"$cond": {
"if": {
"$not": {
"$ifNull": ["$salle", false]
}
},
"then": "$case.key",
"else": "$salle.key"
}
}
}
])
谁能解释我发生了什么事?