Mongo $ IfNull未完成预期的操作

时间:2019-02-05 14:12:10

标签: mongodb

我有一个带有文档的集合“结构”:

{
    "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"
        }
    }
}
])

谁能解释我发生了什么事?

0 个答案:

没有答案