Wie kann ich das Dokument finden, das das angegebene JSON-Objekt enthält?Abfrage von Dokumenten in MongoDB nach Objektabgleich
Beispiel:
nehme an, dass in der Datenbank test
es ein Dokument ist wie folgt:
{
"identification": {
"componentId": "3a4f6199-6141-4179-ac5f-f1bbcf627bb2",
"componentType": "PivotTable",
"dataDate": "2016-06-15T15:29:51.139+0200",
"dataType": "PTF",
"properties": {
"contextId": "0329fe70-92f0-4b60-b3c2-79377adb8f95",
"tags": ["tag1", "tag2"]
}
},
"viewData": {
"lineGroups": []
}
}
Jetzt nur die identification
Teil des Dokuments mit Teilschlüssel-Set mit Wert gegeben:
{
"componentType": "PivotTable",
"properties": {
"tags": ["tag1"]
}
}
Da das Identifikationsteil des obigen Dokuments mit der angegebenen Identifikation übereinstimmt, sollte dieses Dokument zurückgegeben werden.
Wenn ich db.test.find({identification: {/*the given identification segment*/}})
mache, vergleicht mongodb direkt den Identifizierungsteil, indem er genau jeden Eintrag im Dokument überprüft. In diesem Fall wird dieses Dokument nicht zurückgegeben.
Gibt es einen Weg in mongodb Abfragesprache, die es mir erlaubt, dies relativ einfach oder einfach zu tun? Oder muss ich die Einträge im Identification-Objekt rekursiv analysieren, um eine Abfrage zu erstellen?
So auf diese Weise muss ich noch eine Abfragezeichenfolge durch Analysieren der Einträge im Filialdokument erstellen. Kein einfacher Weg? Da, wenn die Subdoucement-Struktur komplex wird (ein anderes Filialdokument mit verschiedenen Typen von Werten enthält), wird das Konstruieren der Abfrage nicht so einfach. – qingl97
ja ..... das ist das Spiel :-) – profesor79
@ qingl97 Wenn meine Antwort Ihnen geholfen hat, bitte akzeptieren Sie es sehen: http://stackoverflow.com/help/accepted-answer – profesor79