“y” para un solo subdocumento
-
20-12-2019 - |
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.
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