MongoDB-তে নেস্টেড অ্যারে বা সাব-ডকুমেন্টের ফিল্ড আপডেট করতে পজিশনাল $ অপারেটর ব্যবহার করা হয়। এটি ম্যাচ করা এলিমেন্টকে নির্দেশ করে।
উদাহরণ: সার্ভার ইনফরমেশন সহ ডকুমেন্ট তৈরি
> db.demo707.insertOne({
id: 101,
"serverInformation": [
{ "IP": "192.56.34.3", "Status": "Active" },
{ "IP": "192.56.36.4", "Status": "Inactive" }
]
});
আপডেট করার আগে ডেটা দেখা
> db.demo707.find();
আউটপুট:
{ "_id" : ..., "id" : 101, "serverInformation" : [
{ "IP" : "192.56.34.3", "Status" : "Active" },
{ "IP" : "192.56.36.4", "Status" : "Inactive" }
] }
নির্দিষ্ট IP-এর স্ট্যাটাস INACTIVE করা
$set এবং পজিশনাল $ অপারেটর ব্যবহার করে:
> db.demo707.update(
{ "serverInformation.IP": "192.56.34.3" },
{ $set: { "serverInformation.$.Status": "Inactive" } }
);
রেজাল্ট: WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
আপডেটের পর ডেটা যাচাই
> db.demo707.find();
আউটপুট:
{ "_id" : ..., "id" : 101, "serverInformation" : [
{ "IP" : "192.56.34.3", "Status" : "Inactive" },
{ "IP" : "192.56.36.4", "Status" : "Inactive" }
] }
মূল পয়েন্ট: serverInformation.$.Status-এ $ চিহ্নটি কোয়েরিতে ম্যাচ করা অ্যারে এলিমেন্টকে (এখানে প্রথমটি) নির্দেশ করে।