Mongodb: so überprüfen sie, ob ein feld vorhanden ist
Sie können die folgenden Methoden verwenden, um zu überprüfen, ob ein Feld in einer Sammlung in MongoDB vorhanden ist:
Methode 1: Überprüfen Sie, ob das Feld vorhanden ist
db.myCollection.find({ " myField ": { $exists : true } })
Diese Methode prüft, ob „myField“ in der Sammlung mit dem Namen myCollection vorhanden ist. Wenn ja, werden alle Dokumente zurückgegeben, die den Feldnamen enthalten. Wenn dies nicht der Fall ist, wird nichts zurückgegeben.
Methode 2: Überprüfen Sie, ob das eingebettete Feld vorhanden ist
db.myCollection.find({ " myField.embeddedField ": { $exists : true } })
Diese Methode prüft, ob der Feldname „embeddedField“ im Feld „myField“ in der Sammlung mit dem Namen myCollection vorhanden ist. Wenn ja, werden alle Dokumente zurückgegeben, die den Feldnamen enthalten. Wenn dies nicht der Fall ist, wird nichts zurückgegeben.
Die folgenden Beispiele zeigen, wie die einzelnen Methoden in der Praxis mit einem Inkassoteam mit den folgenden Dokumenten angewendet werden :
db.teams.insertOne({team: "Mavs", class: {conf: "Western", div: "A"}, points: 31 }) db.teams.insertOne({team: "Spurs", class: {conf: "Western", div: "A"}, points: 22 }) db.teams.insertOne({team: "Jazz", class: {conf: "Western", div: "B"}, points: 19 }) db.teams.insertOne({team: "Celtics", class: {conf: "Eastern", div: "C"}, points: 26 })
Beispiel 1: Überprüfen Sie, ob das Feld vorhanden ist
Der folgende Code zeigt, wie überprüft wird, ob der Feldname „points“ in der Teams- Sammlung vorhanden ist:
db.teams.find({ " points ": { $exists : true } })
Diese Abfrage gibt die folgenden Dokumente zurück:
{ _id: ObjectId("6203d10c1e95a9885e1e7637"), team: 'Mavs', class: { conf: 'Western', div: 'A' }, points: 31 } { _id: ObjectId("6203d10c1e95a9885e1e7638"), team: 'Spurs', class: { conf: 'Western', div: 'A' }, points: 22 } { _id: ObjectId("6203d10c1e95a9885e1e7639"), team: 'Jazz', class: { conf: 'Western', div: 'B' }, points: 19 } { _id: ObjectId("6203d10c1e95a9885e1e763a"), team: 'Celtics', class: { conf: 'Eastern', div: 'C' }, points: 26 }
Da der Feldname „Punkte“ existiert, wird jedes Dokument zurückgegeben, das das Feld „Punkte“ enthält.
Angenommen, wir prüfen stattdessen, ob der Feldname „steals“ in der Teams- Sammlung vorhanden ist:
db.teams.find({ " steals ": { $exists : true } })
Da dieses Feld nicht vorhanden ist, wird keine Ausgabe zurückgegeben.
Beispiel 2: Überprüfen Sie, ob ein eingebettetes Feld vorhanden ist
Der folgende Code zeigt, wie überprüft wird, ob der integrierte Feldname „div“ im Feld „class“ der Teams- Sammlung vorhanden ist:
db.teams.find({ " class.div ": { $exists : true } })
Diese Abfrage gibt die folgenden Dokumente zurück:
{ _id: ObjectId("6203d10c1e95a9885e1e7637"), team: 'Mavs', class: { conf: 'Western', div: 'A' }, points: 31 } { _id: ObjectId("6203d10c1e95a9885e1e7638"), team: 'Spurs', class: { conf: 'Western', div: 'A' }, points: 22 } { _id: ObjectId("6203d10c1e95a9885e1e7639"), team: 'Jazz', class: { conf: 'Western', div: 'B' }, points: 19 } { _id: ObjectId("6203d10c1e95a9885e1e763a"), team: 'Celtics', class: { conf: 'Eastern', div: 'C' }, points: 26 }
Da der Name des eingebetteten Felds „div“ im Feld „class“ vorhanden ist, wird jedes Dokument zurückgegeben, das das eingebettete Feld „div“ enthält.
Angenommen, wir prüfen stattdessen, ob der integrierte Feldname „division“ im Feld „class“ in der Teams- Sammlung vorhanden ist:
db.teams.find({ " class.division ": { $exists : true } })
Da dieses integrierte Feld nicht vorhanden ist, wird keine Ausgabe zurückgegeben.
Hinweis : Die vollständige Dokumentation für die Funktion $exists finden Sie hier .
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere gängige Vorgänge in MongoDB ausführen:
MongoDB: So listen Sie alle Feldnamen auf
MongoDB: So benennen Sie Felder um
MongoDB: So fügen Sie neue Felder hinzu
MongoDB: So löschen Sie Felder