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

MongoDB-এ একাধিক শর্তে অ্যারে আপডেট করার পদ্ধতি

MongoDB-এ অ্যারেতে নেস্টেড ডকুমেন্ট খুঁজে বের করে সেটার মধ্যে নতুন এলিমেন্ট যোগ করতে $elemMatch এবং $push একসাথে ব্যবহার করা হয়।

কলেকশন এবং ডকুমেন্ট তৈরি

> db.demo94.insertOne({
...   "Details" : [
...     { "Name" : "Chris", "Subject" : [] },
...     { "Name" : "David", "Subject" : [] },
...     { "Name" : "Bob", "Subject" : [] }
...   ]
... });
{ "acknowledged" : true, "insertedId" : ObjectId("5e2d553bb8903cdd865577a9") }

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

> db.demo94.find();

আউটপুট:

{ "_id" : ObjectId("5e2d553bb8903cdd865577a9"), "Details" : [ { "Name" : "Chris", "Subject" : [ ] }, { "Name" : "David", "Subject" : [ ] }, { "Name" : "Bob", "Subject" : [ ] } ] }

একাধিক শর্তে অ্যারে আপডেট করার কোয়ারী

$elemMatch দিয়ে Details অ্যারেতে Name: "David" মিলে যাওয়া এলিমেন্ট খুঁজে, তার Subject অ্যারেতে নতুন অবজেক্ট পুশ করা হয়েছে:

> db.demo94.updateOne(
...   { "Details": { "$elemMatch": { "Name": "David" } } },
...   { "$push": { "Details.$.Subject": { "Subject": "MongoDB" } } }
... );
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }

আপডেটের পর ডকুমেন্ট দেখানো

> db.demo94.find();

আউটপুট (David-এর Subject অ্যারেতে MongoDB যোগ হয়েছে):

{ "_id" : ObjectId("5e2d553bb8903cdd865577a9"), "Details" : [ { "Name" : "Chris", "Subject" : [ ] }, { "Name" : "David", "Subject" : [ { "Subject" : "MongoDB" } ] }, { "Name" : "Bob", "Subject" : [ ] } ] }

গুরুত্বপূর্ণ পয়েন্টসমূহ:

  • $elemMatch - অ্যারেতে একই এলিমেন্টে একাধিক শর্ত মেলাতে ব্যবহার করা হয়
  • Details.$.Subject - পজিশনাল $ অপারেটর কোয়ারীতে মিলে যাওয়া এলিমেন্টকে পয়েন্ট করে
  • $push - অ্যারেতে নতুন এলিমেন্ট যোগ করে

বিকল্প: arrayFilters (MongoDB 3.6+) - আরও পাওয়ারফুল:

db.demo94.updateOne(
  { _id: ObjectId("5e2d553bb8903cdd865577a9") },
  { $push: { "Details.$[elem].Subject": { Subject: "MongoDB" } } },
  { arrayFilters: [ { "elem.Name": "David" } ] }
)

arrayFilters একাধিক শর্ত এবং একাধিক মিলে যাওয়া এলিমেন্ট হ্যান্ডেল করতে বেশি ফ্লেক্সিবল।

  1. MongoDB-তে নির্দিষ্ট কী দিয়ে অ্যারেতে অবজেক্ট আপডেট করা

  2. MongoDB-এ অ্যারেতে এলিমেন্ট যুক্ত করার পদ্ধতি

  3. MongoDB-এ অ্যারে আইটেম গণনা করার পদ্ধতি

  4. MongoDB-এ বাল্ক (Bulk) অপারেশন দিয়ে অ্যারে এলিমেন্ট একাধিক আপডেট করা