MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB insertMany()

In MongoDB die db.collection.insertMany() Methode fügt mehrere Dokumente in eine Sammlung ein.

Die collection part ist der Name der Sammlung, in die die Dokumente eingefügt werden sollen.

Beispiel

Hier ist ein Beispiel für die Verwendung von db.collection.insertMany() um mehrere Dokumente in eine Sammlung namens pets einzufügen :

db.pets.insertMany([
    { _id: 1, name: "Wag", type: "Dog" },
    { _id: 2, name: "Bark", type: "Dog" },
    { _id: 3, name: "Meow", type: "Cat" }
    ])

Ergebnis:

{ "acknowledged" : true, "insertedIds" : [ 1, 2, 3 ] } 

Die db.collection.insertMany() Die Methode gibt ein Dokument zurück, das Folgendes enthält:

  • Ein boolescher acknowledged als true ob die Operation mit Write Concern oder false ausgeführt wurde wenn Schreibschutz deaktiviert war.
  • Ein Array von _id Werte für jedes erfolgreich eingefügte Dokument.

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 von Dokumenten ohne Angabe der _id Felder.

db.pets.insertMany([
    { name: "Bruce", type: "Bat" },
    { name: "Sweetie", type: "Honey Badger" }
    ])

Ergebnis:

{
	"acknowledged" : true,
	"insertedIds" : [
		ObjectId("5fe30ef737b49e0faf1af215"),
		ObjectId("5fe30ef737b49e0faf1af216")
	]
}

Die _id Werte der Dokumente zurückgegeben werden. Wir könnten diese verwenden, um die Sammlung nur nach den Dokumenten zu durchsuchen, die wir eingefügt haben.

Aber schauen wir uns in diesem Fall die gesamte 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("5fe30ef737b49e0faf1af215"), "name" : "Bruce", "type" : "Bat" }
{ "_id" : ObjectId("5fe30ef737b49e0faf1af216"), "name" : "Sweetie", "type" : "Honey Badger" }

Wir können sehen, dass unsere beiden neuen Dokumente in der Sammlung enthalten sind.

Der ordered Parameter

Die db.collection.insertMany() 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.insertMany() -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.insertMany() für weitere Informationen.