“和”用于单个子文档

时间:2014-07-28 18:37:31

标签: mongodb mongodb-query

我有这些文件:

{
    "result": "ok",
    "variants": [
        {
            "state": {
                "state1": false,
                "state2": false
            }
        },
        {
            "state": {
                "state1": false,
                "state2": false
            }
        }

    ]
}

{
    "result": "ok",
    "variants": [
        {
            "state": {
                "state1": false,
                "state2": false
            }
        },
        {
            "state": {
                "state1": false,
                "state2": true
            }
        }

    ]
}


{
    "result": "not_ok",
    "variants": [
        {
            "state": {
                "state1": true,
                "state2": false
            }
        },
        {
            "state": {
                "state1": true,
                "state2": false
            }
        }

    ]
}


{
    "result": "not_ok",
    "variants": [
        {
            "state": {
                "state1": true,
                "state2": false
            }
        },
        {
            "state": {
                "state1": false,
                "state2": true
            }
        }

    ]
}

我必须找到文档中至少有一个变体有state1: falsestate2: false的那个。我试过这个发现:

{
    "variants.state.state1": false,
    "variants.state.state2": false
}

但它为我提供了一个文档,其中一个变体有state1: false,其中一个变体有state2: false。它将单独的子文档的位置应用于一个子文档而不是两个过滤器。

1 个答案:

答案 0 :(得分:1)

这就是答案:

{
    "variants.state": { "$elemMatch" : {"state1" : false, "state2" : false } }
}