Rozdział ten wprowadza operacje wsadowe (bulkWrite) na danych dokumentów w MongoDB przy użyciu powłoki mongo. Tutaj, operacje wsadowe odnoszą się nie tylko do wsadowej aktualizacji dokumentów wspomnianej w poprzednich rozdziałach, ale obejmują również wsparcie dla wykonania wsadowych operacji zapisu, w tym wstawiania, aktualizacji i usuwania dokumentów.

Funkcja bulkWrite służy do operacji wsadowych w powłoce mongo.

Wskazówka: Operacje wsadowe są często stosowane w scenariuszach wymagających synchronizacji wsadowych danych.

Operacje zapisu obsługiwane przez funkcję bulkWrite

Operacje wsadowe obsługują następujące kombinacje operacji zapisu:

  • insertOne - Wstawianie dokumentu
  • updateOne - Aktualizacja dokumentu
  • updateMany - Aktualizacja wsadowa dokumentów
  • replaceOne - Podmiana dokumentu
  • deleteOne - Usunięcie dokumentu
  • deleteMany - Usunięcie wsadowe dokumentów

Format składni

db.kolekcja.bulkWrite(
   [ <operacja 1>, <operacja 2>, ... ],
)

Wyjaśnienie:

  • operacja - Reprezentuje konfigurację operacji zapisu
  • bulkWrite przyjmuje tablicę operacji zapisu.

Przykład

Oto kompleksowy przykład pokazujący wsadowe wykonanie zestawu operacji zapisu dokumentu.

db.inventory.bulkWrite(
      [
	     // Wstawianie dokumentu
         { insertOne :
            {
			// Zawartość dokumentu
               "document" :
               {
                  "_id" : 4, "char" : "Dithras", "class" : "barbarian", "lvl" : 4
               }
            }
         },
         { insertOne :
            {
               "document" :
               {
                  "_id" : 5, "char" : "Taeln", "class" : "fighter", "lvl" : 3
               }
            }
         },
		 // Aktualizacja dokumentu, updateMany jest podobne do aktualizacji wsadowej dokumentów
         { updateOne :
            {
			   // Warunek aktualizacji
               "filter" : { "char" : "Eldon" },
			   // Zawartość aktualizacji
               "update" : { $set : { "status" : "Critical Injury" } }
            }
         },
		 // Usunięcie dokumentu, deleteMany jest podobne do usuwania wielu dokumentów
         { deleteOne :
		    // Warunek usuwania
            { "filter" : { "char" : "Brisbane" } }
         },
		 // Podmiana dokumentu
         { replaceOne :
            {
			    // Warunek podmiany
               "filter" : { "char" : "Meldane" },
			   // Zawartość podmiany
               "replacement" : { "char" : "Tanys", "class" : "oracle", "lvl" : 4 }
            }
         }
      ]
   );