Dieses Kapitel führt in Batch-Operationen (bulkWrite) für MongoDB-Dokumentdaten unter Verwendung der mongo shell ein. Hier beziehen sich Batch-Operationen nicht nur auf die Stapelaktualisierung von Dokumenten, die in früheren Kapiteln erwähnt wurden, sondern umfassen auch die Unterstützung für die Ausführung einer Batch-Write-Operation, einschließlich des Einfügens, Aktualisierens und Löschens von Dokumenten.

Die Funktion bulkWrite wird für Batch-Operationen in der mongo shell verwendet.

Tipp: Batch-Operationen werden oft in Szenarien verwendet, die eine Stapeldatensynchronisierung erfordern.

Write-Operationen, die von der Funktion bulkWrite unterstützt werden

Die Batch-Operationen unterstützen die folgenden Kombinationen von Schreiboperationen:

  • insertOne - Einfügen eines Dokuments
  • updateOne - Aktualisieren eines Dokuments
  • updateMany - Aktualisieren einer Gruppe von Dokumenten
  • replaceOne - Ersetzen eines Dokuments
  • deleteOne - Löschen eines Dokuments
  • deleteMany - Löschen einer Gruppe von Dokumenten

Syntax-Format

db.collection.bulkWrite(
   [ <Operation 1>, <Operation 2>, ... ],
)

Erklärung:

  • Operation - Stellt die Konfiguration für die Schreiboperation dar.
  • bulkWrite akzeptiert ein Array von Schreiboperationen.

Beispiel

Hier ist ein umfassendes Beispiel, das die Stapelausführung einer Reihe von Dokument-Schreiboperationen zeigt.

db.inventory.bulkWrite(
      [
	     // Ein Dokument einfügen
         { insertOne :
            {
			// Dokumenteninhalt
               "document" :
               {
                  "_id" : 4, "char" : "Dithras", "class" : "barbarian", "lvl" : 4
               }
            }
         },
         { insertOne :
            {
               "document" :
               {
                  "_id" : 5, "char" : "Taeln", "class" : "fighter", "lvl" : 3
               }
            }
         },
		 // Ein Dokument aktualisieren, updateMany funktioniert ähnlich für die Aktualisierung einer Gruppe von Dokumenten
         { updateOne :
            {
			   // Aktualisierungsbedingung
               "filter" : { "char" : "Eldon" },
			   // Aktualisierungsinhalt
               "update" : { $set : { "status" : "Kritische Verletzung" } }
            }
         },
		 // Ein Dokument löschen, deleteMany funktioniert ähnlich für das Löschen mehrerer Dokumente
         { deleteOne :
		    // Löschbedingung
            { "filter" : { "char" : "Brisbane" } }
         },
		 // Ein Dokument ersetzen
         { replaceOne :
            {
			    // Ersetzungsbedingung
               "filter" : { "char" : "Meldane" },
			   // Ersetzungsinhalt
               "replacement" : { "char" : "Tanys", "class" : "Orakel", "lvl" : 4 }
            }
         }
      ]
   );