$push এবং ডট নোটেশন ব্যবহার করে নেস্টেড অ্যারে আপডেট
MongoDB-এ নেস্টেড অবজেক্টের ভেতরের অ্যারে (সাব-কালেকশন) আপডেট করতে $push অপারেটর এবং ডট নোটেশন (.) ব্যবহার করে পাথ নির্দেশ করা হয়। এটি অ্যাটমিক্যালি কাজ করে।
নমুনা সংগ্রহ তৈরি (নেস্টেড স্ট্রাকচার)
> db.demo547.insertOne(
{
Name : "Chris",
Test : {
"FirstTest" : { Scores: [56,29,76] },
"SecondTest" : { Scores: [98,91,78] }
}
}
);
{ "acknowledged" : true, "insertedId" : ObjectId("5e8e2d579e5f92834d7f05dd") }
ডকুমেন্ট দেখানো
> db.demo547.find();
আউটপুট:
FirstTest.Scores অ্যারেয়ে 99 যোগ করা (কনকারেন্ট আপডেট)
> db.demo547.update({"Name":"Chris"}, { $push:{ "Test.FirstTest.Scores" : 99}}) WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })আপডেটের পর:
ব্যাখ্যা: ডট নোটেশন "Test.FirstTest.Scores" দিয়ে গভীর নেস্টেড অ্যারেতে পৌঁছানো হয়েছে। $push দিয়ে 99 যোগ করা হয়েছে। MongoDB-এর update() অ্যাটমিক, তাই কনকারেন্ট এনভায়রনমেন্টেও সেফ। আধুনিক ভার্সনে updateOne()/updateMany() ব্যবহার করা ভালো।