MongoDB-তে গভীর নেস্টেড ফিল্ড আপডেট করতে update() এর $set এ ডট নোটেশন (Dot Notation) ব্যবহার করা হয়। পথে ডট (.) দিয়ে লেভেল বাই লেভেল নির্দেশ করা হয়।
উদাহরণ: গভীর নেস্টেড স্ট্রাকচার (Info1 → Info2 → Marks)
> db.demo607.insertOne({
id: 1,
"Info1": {
"Name": "Chris", "Age": 21,
"Info2": { "SubjectName": "MongoDB", "Marks": 89 }
}
});
Marks 89 থেকে 90 আপডেট করা
> db.demo607.update(
{ id: 1 },
{ $set: { "Info1.Info2.Marks": 90 } }
);
রেজাল্ট: WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
ফলাফল
> db.demo607.find().pretty();
আউটপুট: Info1.Info2.Marks এখন 90 দেখাচ্ছে।
ডট নোটেশন নিয়ম:
- অবজেক্ট:
"parent.child.grandchild" - অ্যারে (ইনডেক্স):
"array.0.field"(প্রথম এলিমেন্ট) - অ্যারে (পজিশনাল $):
"array.$.field"(কোয়েরিতে ম্যাচ করা এলিমেন্ট) - অ্যারে (arrayFilters): MongoDB 3.6+ এ
arrayFilters: [{ "elem.field": value }]দিয়ে আরও স্পষ্ট
সতর্কতা: $set ছাড়া আপডেট করলে পুরো সাব-ডকুমেন্ট ওভাররাইট হয়ে যাবে।