Załóżmy, że mam kolekcję takiego:Mongo zapytań na wielu polach Sub-Dokumentu
{ "arr" : [ { "name" : "a", "num" : 1 }, { "name" : "a", "num" : 2 } ] },
{ "arr" : [ { "name" : "b", "num" : 1 }, { "name" : "a", "num" : 2 } ] },
{ "arr" : [ { "name" : "b", "num" : 1 }, { "name" : "b", "num" : 2 } ] }
i chcę znaleźć wszystkie dokumenty Kto arr
zawiera sub-dokument o name
= „b” i num
= 2.
Jeśli zrobić kwerendę tak:
db.collection.find({
$and: [
{ "arr.name": "b" },
{ "arr.num": 2 }
]
});
zwróci wszystkie dokumenty w kolekcji, ponieważ każdy z nich zawierają su b-dokument z albo name
z „b” lub num
od 2.
Próbowałem też tak:
db.collection.find({
arr: [
{ "name": "b", "num": 2 }
]
});
który nie rzucać żadnych błędów, ale nie zwraca żadnych wyników .
Zapytanie w wielu polach dokumentów podrzędnych w MongoDB?
Bardzo przydatna i kompletna odpowiedź, przepraszam, że nie mogliśmy dwukrotnie głosować. Dzięki Neil! – Moppo