Bab ini memperkenalkan operasi batch (bulkWrite) pada data dokumen MongoDB menggunakan mongo shell. Di sini, operasi batch tidak hanya merujuk pada pembaruan batch dokumen yang disebutkan dalam bab-bab sebelumnya, tetapi juga mencakup dukungan untuk melakukan sejumlah operasi penulisan, termasuk penyisipan dokumen, pembaruan, dan penghapusan.

Fungsi bulkWrite digunakan untuk operasi batch dalam mongo shell.

Tip: Operasi batch sering digunakan dalam skenario yang memerlukan sinkronisasi data batch.

Operasi penulisan yang didukung oleh fungsi bulkWrite

Operasi batch mendukung kombinasi operasi penulisan berikut:

  • insertOne - Menyisipkan dokumen
  • updateOne - Memperbarui dokumen
  • updateMany - Memperbarui sekelompok dokumen
  • replaceOne - Mengganti dokumen
  • deleteOne - Menghapus dokumen
  • deleteMany - Menghapus sekelompok dokumen

Format sintaks

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

Penjelasan:

  • operasi - Mewakili konfigurasi operasi penulisan
  • bulkWrite menerima array dari operasi penulisan.

Contoh

Berikut adalah contoh komprehensif yang menunjukkan eksekusi batch dari sekelompok operasi penulisan dokumen.

db.inventory.bulkWrite(
      [
	     // Menyisipkan dokumen
         { insertOne :
            {
			// Konten dokumen
               "document" :
               {
                  "_id" : 4, "char" : "Dithras", "class" : "barbarian", "lvl" : 4
               }
            }
         },
         { insertOne :
            {
               "document" :
               {
                  "_id" : 5, "char" : "Taeln", "class" : "fighter", "lvl" : 3
               }
            }
         },
		 // Memperbarui dokumen, updateMany serupa untuk memperbarui sekelompok dokumen
         { updateOne :
            {
			   // Kondisi pembaruan
               "filter" : { "char" : "Eldon" },
			   // Konten pembaruan
               "update" : { $set : { "status" : "Cedera Kritis" } }
            }
         },
		 // Menghapus dokumen, deleteMany serupa untuk menghapus beberapa dokumen
         { deleteOne :
		    // Kondisi penghapusan
            { "filter" : { "char" : "Brisbane" } }
         },
		 // Mengganti dokumen
         { replaceOne :
            {
			    // Kondisi penggantian
               "filter" : { "char" : "Meldane" },
			   // Konten penggantian
               "replacement" : { "char" : "Tanys", "class" : "oracle", "lvl" : 4 }
            }
         }
      ]
   );