bulkWrite() মেথড ব্যবহার করে বাল্ক আপসার্ট অপারেশন
MongoDB-এ একাধিক রাইট অপারেশন (ইনসার্ট, আপডেট, আপসার্ট) একসাথে কার্যকর করতে bulkWrite() মেথড ব্যবহার করা হয়। এটি অর্ডার্ড বা আনঅর্ডার্ড হতে পারে।
অ্যারে লিস্ট এবং অপারেশন তৈরি
> const arrayList = [
{"Value1":100, "Value2":200, "Name": "John"},
{"Value1":100, "Value2":200, "Name": "Bob"}
];
> let op1 = [];
> arrayList.forEach(({ Value1, Value2, Name }) => {
op1.push({
"updateOne": {
"filter": { Name},
"update": { "$set": { Value1, Value2, Name } },
"upsert": true
}
})
});
> db.demo397.bulkWrite(op1);
{ "acknowledged" : true, "deletedCount" : 0, "insertedCount" : 0, "matchedCount" : 0, "upsertedCount" : 2, "insertedIds" : { }, "upsertedIds" : { "0" : ObjectId("5e5e8c07f995e1718151981c"), "1" : ObjectId("5e5e8c07f995e1718151981d") } }
ইনসার্ট হওয়া ডকুমেন্টগুলো দেখানো
> db.demo397.find();
ফলাফল:
ব্যাখ্যা: arrayList-এর প্রতিটি আইটেমের জন্য updateOne সাথে upsert: true দিয়ে অপারেশন তৈরি করা হয়েছে। Name ফিল্ড দিয়ে ফিল্টার করলে নতুন হলে ইনসার্ট (upsert), থাকলে আপডেট হয়। bulkWrite() একসাথে সব অপারেশন এক্সিকিউট করে। আধুনিক MongoDB-এ এটি বাল্ক অপারেশনের স্ট্যান্ডার্ড পদ্ধতি।