Pregunta

Tengo esos documentos:

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

    ]
}

y necesito encontrar aquellos en los que al menos una variante en el documento tiene state1: false y state2: false.He probado este hallazgo:

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

Pero me da los documentos donde tiene una de las variantes. state1: false y una de las variantes tiene state2: false.Aplica el dónde a los subdocumentos individualmente y no ambos filtros a un subdocumento.

¿Fue útil?

Solución

esta es la respuesta:

{
    "variants.state": { "$elemMatch" : {"state1" : false, "state2" : false } }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top