Das ist das erwartete Verhalten.
Wenn Sie einzelne Felder eines eingebetteten Dokuments abfragen möchten, müssen Sie die folgende Syntax verwenden - mit dem Punkt (.
). ) Notation. Beispielsweise geben diese beiden Abfragen das Dokument zurück:
db.test.find({"KPOP.SHINee": "Dream Girl"})
db.test.find({"KPOP.SHINee": "Dream Girl", "KPOP.BTS": "Fake Love" })
In den obigen Abfragen können Sie ein, zwei oder alle Felder und angeben in beliebiger Reihenfolge.
Sie verwenden die folgende Syntax, wenn Sie den Filter für das Ganze angeben Eingebettetes Dokument:
db.test.find({ KPOP: { SHINee: "Dream Girl", "Girl's Generation": "I Got a Boy", BTS: "Fake Love" } })
Beachten Sie in diesem Fall die Reihenfolge der Felder des eingebetteten Dokuments muss mit dem des Originaldokuments übereinstimmen; d.h. SHINee
, "Girl's Generation"
und BTS
(innerhalb des KPOP
). Und Sie müssen all angeben die Felder des eingebetteten Dokuments.