Angenommen, ich habe eine Sammlung wie folgt aus:Mongo Abfrage auf mehreren Feldern von Sub-Dokument
{ "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 } ] }
und ich möchte alle Dokumente finden, die arr
ist enthält ein Teildokument mit einem name
= „b“ und num
= 2.
Wenn ich eine Abfrage wie folgt aus:
db.collection.find({
$and: [
{ "arr.name": "b" },
{ "arr.num": 2 }
]
});
es werden alle Dokumente in der Sammlung zurück, weil sie jeweils eine su enthalten b-Dokument entweder mit einem name
von „b“ oder ein num
von 2.
Ich habe dies auch versucht:
db.collection.find({
arr: [
{ "name": "b", "num": 2 }
]
});
, die keine Fehler werfen, hat noch nicht wieder keine Ergebnisse .
Wie fragen Sie nach mehreren Unterdokumentfeldern in MongoDB ab?
Sehr nützliche und vollständige Antwort, es tut mir leid, nicht zweimal upvote. Danke Neil! – Moppo