কম্পিউটার টিউটোরিয়াল

MongoDB-এ multi:true দিয়ে একাধিক ডকুমেন্ট আপডেট করা

MongoDB-এ update() এর multi:true অপশন দিয়ে একাধিক ডকুমেন্ট আপডেট

পুরনো MongoDB শেলে update()-এর তৃতীয় আর্গুমেন্টে {multi:true} দিলে কোয়ারি মিলা সকল ডকুমেন্ট আপডেট হয়। ডিফল্টভাবে multi:false (শুধু প্রথমটি)। আধুনিক ভার্সনে updateMany() ব্যবহার করুন।

উদাহরণ: ডেটা ইনসার্ট

> db.demo312.insertOne({"FirstName":"Robert"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50ce16f8647eb59e56204a") }
> db.demo312.insertOne({"FirstName":"Bob"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50ce19f8647eb59e56204b") }
> db.demo312.insertOne({"FirstName":"Robert"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50ce1cf8647eb59e56204c") }
> db.demo312.insertOne({"FirstName":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50ce20f8647eb59e56204d") }
> db.demo312.insertOne({"FirstName":"Robert"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50ce22f8647eb59e56204e") }

সব ডকুমেন্ট দেখানো

> db.demo312.find();

আউটপুট:

{ "_id" : ObjectId("5e50ce16f8647eb59e56204a"), "FirstName" : "Robert" }
{ "_id" : ObjectId("5e50ce19f8647eb59e56204b"), "FirstName" : "Bob" }
{ "_id" : ObjectId("5e50ce1cf8647eb59e56204c"), "FirstName" : "Robert" }
{ "_id" : ObjectId("5e50ce20f8647eb59e56204d"), "FirstName" : "David" }
{ "_id" : ObjectId("5e50ce22f8647eb59e56204e"), "FirstName" : "Robert" }

multi:true দিয়ে আপডেট (সব "Robert" → "Sam")

> db.demo312.update({"FirstName":"Robert"},{$set:{"FirstName":"Sam"}},{multi:true});
WriteResult({ "nMatched" : 3, "nUpserted" : 0, "nModified" : 3 })

আপডেট পর পরিদর্শন

> db.demo312.find();

আউটপুট:

{ "_id" : ObjectId("5e50ce16f8647eb59e56204a"), "FirstName" : "Sam" }
{ "_id" : ObjectId("5e50ce19f8647eb59e56204b"), "FirstName" : "Bob" }
{ "_id" : ObjectId("5e50ce1cf8647eb59e56204c"), "FirstName" : "Sam" }
{ "_id" : ObjectId("5e50ce20f8647eb59e56204d"), "FirstName" : "David" }
{ "_id" : ObjectId("5e50ce22f8647eb59e56204e"), "FirstName" : "Sam" }

ব্যাখ্যা

  • {multi:true} — কোয়ারি মিলা সকল ডকুমেন্ট আপডেট করে।
  • nMatched:3, nModified:3 — তিনটি মিলে, তিনটি আপডেট হলো।
  • সতর্কতা: update() ডিপ্রিকেটেড। বর্তমান ড্রাইভার/শেলে updateMany({"FirstName":"Robert"}, {$set:{"FirstName":"Sam"}}) ব্যবহার করুন।
  1. MongoDB-এ নির্দিষ্ট আইডি वाले সব ডকুমেন্ট আপডেট করা

  2. MongoDB-এ ক্যাপড কালেকশন ব্যবহার করে ডকুমেন্ট সংখ্যা লিমিট করা

  3. MongoDB-তে এমবেডেড ডকুমেন্ট কোয়েরি করা (aggregate + $unwind)

  4. MongoDB-এ bulkWrite() দিয়ে এক কোয়েরিতে একাধিক ডকুমেন্ট আপডেট করা