MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

MongoDB bulkWrite()

Di MongoDB db.collection.bulkWrite() metode melakukan beberapa operasi tulis dengan kontrol untuk urutan eksekusi.

Operasi penulisan massal memengaruhi satu koleksi. collection bagian adalah nama koleksi yang digunakan untuk melakukan operasi terhadap.

Operasi Tulis Massal

db.collection.bulkWrite() metode dapat digunakan untuk melakukan operasi tulis berikut:

  • insertOne
  • updateOne
  • updateMany
  • replaceOne
  • deleteOne
  • deleteMany

Salah satu metode ini dapat disertakan dalam panggilan ke db.collection.bulkWrite() , dan Anda dapat menyertakan metode berbeda dalam panggilan yang sama.

Contoh

Berikut ini contoh penggunaan db.collection.bulkWrite() untuk melakukan operasi penulisan massal terhadap koleksi yang disebut pets :

Misalkan kita memasukkan dokumen berikut ke dalam koleksi yang disebut pets :

db.pets.insertMany([
    { _id: 1, name: "Wag", type: "Dog", weight: 20 },
    { _id: 2, name: "Bark", type: "Dog", weight: 10 },
    { _id: 3, name: "Meow", type: "Cat" },
    { _id: 4, name: "Scratch", type: "Cat" },
    { _id: 5, name: "Bruce", type: "Bat" }
    ])

Sekarang kita dapat menggunakan db.collection.bulkWrite() untuk melakukan operasi penulisan massal terhadap koleksi tersebut.

Contoh:

db.pets.bulkWrite([
    { insertOne: { "document": { "_id": 6, "name": "Bubbles", "type": "Fish" }}},
    { updateOne : {
        "filter" : { "_id" : 2 },
        "update" : { $set : { "weight" : 15 } }
    } },
    { deleteOne : { "filter" : { "_id" : 5 } } },
    { replaceOne : {
        "filter" : { "_id" : 4 },
        "replacement" : { "name" : "Bite", "type" : "Dog", "weight": 5 }
    } }
])

Hasil:

{
	"acknowledged" : true,
	"deletedCount" : 1,
	"insertedCount" : 1,
	"matchedCount" : 2,
	"upsertedCount" : 0,
	"insertedIds" : {
		"0" : 6
	},
	"upsertedIds" : {
		
	}
}

Dalam hal ini, kami menyisipkan satu dokumen, memperbarui dokumen lain, menghapus dokumen lain, dan mengganti dokumen lain.

db.collection.bulkWrite() metode mengembalikan yang berikut:

  • Boolean acknowledged sebagai true jika operasi berjalan dengan masalah tulis atau false jika masalah penulisan dinonaktifkan.
  • Jumlah untuk setiap operasi tulis.
  • Array yang berisi _id untuk setiap dokumen yang berhasil dimasukkan atau dimasukkan.

Lihat Hasilnya

Sekarang mari kita lihat kembali dokumen-dokumen dalam koleksi.

db.pets.find()

Hasil:

{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 15 }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }
{ "_id" : 4, "name" : "Bite", "type" : "Dog", "weight" : 5 }
{ "_id" : 6, "name" : "Bubbles", "type" : "Fish" }

Kita dapat melihat bahwa semua perubahan dilakukan seperti yang ditentukan.

Yang ordered Parameter

Operasi penulisan massal dapat dipesan atau tidak berurutan. Secara default, mereka dipesan.

Anda dapat menentukan urutan dengan menggunakan parameter boolean yang dipesan. Memberikan nilai true membuatnya menjadi daftar operasi yang berurutan, menyetelnya ke false membuatnya menjadi daftar operasi yang tidak berurutan.

Dengan daftar operasi yang diurutkan, MongoDB menjalankan operasi secara serial. Jika kesalahan terjadi selama pemrosesan salah satu operasi tulis, MongoDB akan kembali tanpa memproses operasi tulis yang tersisa dalam daftar.

Dengan daftar operasi yang tidak berurutan, MongoDB dapat menjalankan operasi secara paralel (walaupun ini tidak dijamin). Jika terjadi kesalahan selama pemrosesan salah satu operasi tulis, MongoDB akan terus memproses sisa operasi tulis dalam daftar.

Informasi Lebih Lanjut

db.collection.bulkWrite() metode ini juga menerima writeConcern argumen, yang menjelaskan tingkat pengakuan yang diminta dari MongoDB untuk operasi penulisan.

Lihat dokumentasi MongoDB untuk db.collection.bulkWrite() untuk informasi lebih lanjut.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Objek Dokumen MongoEngine yang dibuat menggunakan from_json tidak menyimpan

  2. MongoDB $setUnion

  3. Bagaimana mengatur hubungan banyak ke banyak di MongoDB

  4. Cara Menginstal MongoDB 4.2 pada sistem RedHat/ CentOS 7

  5. Luwak terisi setelah disimpan