質問

私はそれらの文書を持っています:

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

    ]
}
.

と文書内の少なくとも1つのバリアントがstate1: falsestate2: falseを持っているものを見つけるためにnead。私はこれを試してみました:

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

しかし、それは私に、どのバリアントの1つがstate1: falseを持っていて、そのバリアントの1つがstate2: falseを持っている文書を与えます。両方のフィルタを1つのサブ文書に個別に単位で入力してください。

役に立ちましたか?

解決

これは答えです:

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top