MongoDB-এ এম্বেডেড (Nested) অবজেক্টের ফিল্ড আপডেট করা
MongoDB-এ একটি ডকুমেন্টের ভেতরে নেস্টেড অবজেক্ট (Embedded Document) থাকলে, তার ফিল্ড আপডেট করার জন্য $set অপারেটর দিয়ে ডট (.) নোটেশন ব্যবহার করা হয়।
১. কালেকশন ও নেস্টেড ডকুমেন্ট তৈরি
> db.demo21.insertOne({"StudentId":"STU-101","StudentDetails":{"StudentName":"Chris","StudentAge":21}});
{ "acknowledged" : true, "insertedId" : ObjectId("5e14be8922d07d3b95082e6f") }
২. আপডেটের আগে ডকুমেন্ট
> db.demo21.find().pretty();
আউটপুট:
{
"_id" : ObjectId("5e14be8922d07d3b95082e6f"),
"StudentId" : "STU-101",
"StudentDetails" : {
"StudentName" : "Chris",
"StudentAge" : 21
}
}
৩. চাইল্ড অবজেক্ট আপডেট করা (StudentName: "Chris" -> "Robert")
> db.demo21.update({"StudentId":'STU-101'},{$set:{'StudentDetails.StudentName':'Robert'}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
ব্যাখ্যা: StudentDetails.StudentName ডট নোটেশন দিয়ে নেস্টেড অবজেক্টের ফিল্ডে অ্যাক্সেস করা হয়েছে।
৪. আপডেটের পর ডকুমেন্ট
> db.demo21.find().pretty();
আউটপুট:
{
"_id" : ObjectId("5e14be8922d07d3b95082e6f"),
"StudentId" : "STU-101",
"StudentDetails" : {
"StudentName" : "Robert",
"StudentAge" : 21
}
}
StudentName "Chris" থেকে "Robert" হয়ে গেছে, কিন্তু StudentAge অপরিবর্তিত রয়েছে। এটি পার্শিয়াল আপডেটের সুবিধা।