"E" per un singolo subdocument
-
20-12-2019 - |
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.
Soluzione
Questa è la risposta:
{
"variants.state": { "$elemMatch" : {"state1" : false, "state2" : false } }
}
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow