MongoDB-এ নেস্টেড অবজেক্টের ফিল্ড আপডেট করতে update() মেথডে ডট নোটেশন এবং $set অপারেটর ব্যবহার করা হয়।
কলেকশন এবং ডকুমেন্ট তৈরি
> db.demo77.insertOne({"Details" : { "Score" : 78 } });
{ "acknowledged" : true, "insertedId" : ObjectId("5e2bd6f371bf0181ecc4228a") }
সব ডকুমেন্ট দেখানো
> db.demo77.find();
আউটপুট:
{ "_id" : ObjectId("5e2bd6f371bf0181ecc4228a"), "Details" : { "Score" : 78 } }
অবজেক্ট আপডেট করার কোয়ারী
Details.Score ফিল্ড ৭৮ থেকে ৮৯ করা হয়েছে:
> db.demo77.update({'Details.Score':78},{$set:{'Details.Score':89}},{multi:true});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
আপডেটের পর ডকুমেন্ট দেখানো
> db.demo77.find();
আউটপুট:
{ "_id" : ObjectId("5e2bd6f371bf0181ecc4228a"), "Details" : { "Score" : 89 } }
ব্যাখ্যা:
'Details.Score':78- কোয়ারী শর্ত (নেস্টেড ফিল্ডে ডট নোটেশন)$set:{'Details.Score':89}- আপডেট অপারেশন{multi:true}- একাধিক ডকুমেন্ট আপডেট করতে (ডিফল্ট false)
আধুনিক পদ্ধতি (MongoDB 3.2+):
- একটি ডকুমেন্ট:
db.demo77.updateOne({'Details.Score':78}, {$set:{'Details.Score':89}}) - একাধিক ডকুমেন্ট:
db.demo77.updateMany({'Details.Score':78}, {$set:{'Details.Score':89}})
নোট: update() ডিপ্রিকেটেড। নতুন অ্যাপ্লিকেশনে updateOne() বা updateMany() ব্যবহার করুন।