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

MongoDB-এ নির্দিষ্ট আইডি वाले সব ডকুমেন্ট আপডেট করা


একাধিক নির্দিষ্ট আইডি আপডেট: updateMany() + $in

MongoDB-এ একাধিক নির্দিষ্ট _id দিয়ে ডকুমেন্টগুলো একসাথে আপডেট করতে updateMany() এবং $in অপারেটর ব্যবহার করা হয়।

নমুনা ডেটা তৈরি

> db.demo476.insertOne({ _id: 1, "Name": "Chris" })
> db.demo476.insertOne({ _id: 2, "Name": "David" })
> db.demo476.insertOne({ _id: 3, "Name": "Bob" })
> db.demo476.insertOne({ _id: 4, "Name": "Carol" })

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

> db.demo476.find()

আউটপুট:

{ "_id": 1, "Name": "Chris" }
{ "_id": 2, "Name": "David" }
{ "_id": 3, "Name": "Bob" }
{ "_id": 4, "Name": "Carol" }

নির্দিষ্ট আইডি (1 এবং 3) আপডেট করা

> db.demo476.updateMany(
    { _id: { $in: [1, 3] } },
    { $set: { Name: "Robert" } }
)

ফলাফল:

{ "acknowledged": true, "matchedCount": 2, "modifiedCount": 2 }

আপডেট後の ডকুমেন্ট

> db.demo476.find()

আউটপুট:

{ "_id": 1, "Name": "Robert" }
{ "_id": 2, "Name": "David" }
{ "_id": 3, "Name": "Robert" }
{ "_id": 4, "Name": "Carol" }

ব্যাখ্যা

  • $in: [1, 3]: _id ১ বা ৩ যেকোনো হলে মэтচ করে
  • updateMany(): সব মিলে যাওয়া ডকুমেন্ট আপডেট করে (পুরনো update({}, ..., { multi: true }) এর প্রতিস্থাপী)
  • $set: { Name: "Robert" }: শুধু Name ফিল্ড আপডেট করে, বাকি অপরিবর্তিত
  • matchedCount: কতটি ডকুমেন্ট মэтচ করেছে
  • modifiedCount: কতটি ডকুমেন্ট আসলে পরিবর্তিত হয়েছে

বাল্ক আপডেটের জন্য খুব কার্যকর এবং পারফরম্যান্স-বান্ধব।

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

  2. MongoDB-এ একটি ফিল্ডের সব মান আপডেট করা নির্দিষ্ট স্ট্রিং দিয়ে

  3. MongoDB-এ ফর্মুলা দিয়ে কালেকশনের সব ডকুমেন্টের ফিল্ড আপডেট করা

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