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 }
}
}
]
);