In MongoDB die db.collection.insert()
Methode fügt ein Dokument oder Dokumente in eine Sammlung ein.
Die collection
part ist der Name der Sammlung, in die das Dokument/die Dokumente eingefügt werden sollen.
Beispiel
Hier ist ein Beispiel für die Verwendung von db.collection.insert()
um mehrere Dokumente in eine Sammlung namens pets
einzufügen :
db.pets.insert([
{ _id: 1, name: "Wag", type: "Dog" },
{ _id: 2, name: "Bark", type: "Dog" },
{ _id: 3, name: "Meow", type: "Cat" }
])
Ergebnis:
BulkWriteResult({ "writeErrors" : [ ], "writeConcernErrors" : [ ], "nInserted" : 3, "nUpserted" : 0, "nMatched" : 0, "nModified" : 0, "nRemoved" : 0, "upserted" : [ ] })
Die db.collection.insert()
Die Methode gibt ein Objekt zurück, das den Status des Einfügevorgangs enthält.
Das zurückgegebene Objekt hängt davon ab, ob ein einzelnes Dokument oder mehrere Dokumente eingefügt wurden.
- Wenn ein einzelnes Dokument eingefügt wird, gibt es ein
WriteResult
zurück Objekt. - Wenn ein Array von Dokumenten eingefügt wird, gibt es ein
BulkWriteResult
zurück Objekt.
Wir können sehen, dass das obige Beispiel ein BulkWriteResult
zurückgegeben hat Objekt. Dies liegt daran, dass wir eine Reihe von Dokumenten hinzugefügt haben. Das hätte es auch getan, wenn das Array nur ein Element enthalten hätte.
Wenn wir jetzt db.collection.find()
verwenden Um sich die Sammlung anzusehen, sehen wir die neu hinzugefügten Dokumente.
db.pets.find()
Ergebnis:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" }
In diesem Fall sind unsere drei Dokumente die einzigen in der Sammlung, und daher wurden nur diese Dokumente zurückgegeben.
Wenn die Sammlung jedoch groß wäre, könnten wir die Dokument-IDs verwenden, um das Ergebnis auf nur die Dokumente einzugrenzen, an denen wir interessiert sind.
db.pets.find({_id: {$in: [1,2,3]}})
Ergebnis:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" }
Was ist, wenn die Sammlung nicht existiert?
Wenn die Sammlung nicht vorhanden ist, wird sie erstellt und die Dokumente werden ihr hinzugefügt.
Existiert die Sammlung bereits, werden die Dokumente einfach hinzugefügt (mit Angabe ihrer _id
Werte stehen nicht in Konflikt mit bestehenden).
Als ich dieses Beispiel erstellt habe, war die Sammlung nicht vorhanden und wurde daher durch die Einfügeoperation erstellt.
Die _id
Feld
Die _id
field ist ein eindeutiges Bezeichnerfeld in MongoDB.
Wie im vorherigen Beispiel gezeigt, können Sie Ihre eigene _id
angeben Feld im Dokument. Wenn Sie dies tun, muss sein Wert innerhalb der Sammlung eindeutig sein. Das liegt daran, dass Ihre _id
wird als eindeutige Kennung des Dokuments verwendet.
Hier ist ein Beispiel für das Einfügen eines Dokuments ohne Angabe der _id
Felder.
db.pets.insert(
{ name: "Bruce", type: "Bat" }
)
Ergebnis:
WriteResult({ "nInserted" : 1 })
Beachten Sie, dass die Methode in diesem Fall ein WriteResult
zurückgibt -Objekt anstelle eines BulkWriteResult
Objekt. Das liegt daran, dass wir ein einzelnes Dokument eingefügt haben (und es nicht in einem Array war).
Schauen wir uns jetzt noch einmal die Sammlung an.
db.pets.find()
Ergebnis:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" } { "_id" : ObjectId("5fe323d837b49e0faf1af218"), "name" : "Bruce", "type" : "Bat" }
Wir können sehen, dass unser neues Dokument in der Sammlung enthalten ist und eine _id
hat Feld mit einem automatisch generierten Wert.
Der ordered
Parameter
Die db.collection.insert()
Die Methode akzeptiert auch einen ordered
Parameter. Dies ist ein boolescher Parameter mit einem Standardwert von true
.
Der ordered
Der Parameter gibt an, ob die Einfügeoperation geordnet oder unsortiert sein soll.
Wenn ordered
auf false
gesetzt ist werden Dokumente in einem ungeordneten Format eingefügt und können von mongod
neu geordnet werden um die Leistung zu steigern.
Wenn bei geordneten Einfügungen während der Einfügung eines der Dokumente ein Fehler auftritt, kehrt MongoDB im Fehlerfall zurück, ohne die verbleibenden Dokumente im Array zu verarbeiten.
Wenn bei ungeordneten Einfügungen beim Einfügen eines der Dokumente ein Fehler auftritt, fügt MongoDB weiterhin die verbleibenden Dokumente in das Array ein.
Weitere Informationen
Die db.collection.insert()
-Methode akzeptiert auch ein writeConcern
-Argument, das die Bestätigungsstufe beschreibt, die von MongoDB für Schreibvorgänge angefordert wird.
Siehe die MongoDB-Dokumentation für db.collection.insert()
für weitere Informationen.