MongoDB-তে অ্যারে ভিতরের নির্দিষ্ট এলিমেন্ট আপডেট করতে পজিশনাল $ অপারেটর ব্যবহার করা হয়। কোয়েরিতে ম্যাচ করা অ্যারে এলিমেন্টকে $ চিহ্নিত করে।
উদাহরণ: ট্যাগ অ্যারে সহ ডকুমেন্ট
> db.demo713.insertOne({
tags: [
{ id: 101, Name: "Tag-1" },
{ id: 102, Name: "Tag-3" },
{ id: 103, Name: "Tag-3" }
]
});
আপডেটের আগে
> db.demo713.find();
আউটপুট: তিনটি ট্যাগ, যেখানে id 102 এবং 103-এর নাম একই "Tag-3"।
id 102-এর ট্যাগ নাম "Tag-2" করে আপডেট
> db.demo713.update(
{ "tags.id": 102 },
{ $set: { "tags.$.Name": "Tag-2" } },
false, true
);
রেজাল্ট: WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
আপডেটের পর
> db.demo713.find().pretty();
আউটপুট: id 102-এর নাম এখন "Tag-2", বাকি অপরিবর্তিত।
গুরুত্বপূর্ণ:
tags.$.Name-$কোয়েরিতে ম্যাচ করা প্রথম এলিমেন্টকে নির্দেশ করেupdate()-র চতুর্থ প্যারামিটারtrue(multi) দিলে সব ম্যাচ আপডেট হয় (ডিফল্ট false)- MongoDB ৩.২+ এ
updateOne()বাupdateMany()ব্যবহার করুন