Domanda

Ho quei documenti:

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

    ]
}
.

e I Nead per trovare quelli in cui almeno una variante nel documento ha state1: false e state2: false.Ho provato questa scoperta:

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

Ma mi dà i documenti in cui una delle varianti ha state1: false e una delle varianti ha state2: false.Applica il punto in cui i subdocumenti individualmente e non entrambi i filtri a un sottocombito.

È stato utile?

Soluzione

Questa è la risposta:

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top