MongoDB-তে ডকুমেন্টের ভিতরের নেস্টেড (ভেতরের) ফিল্ড আপডেট করতে $set অপারেটর এবং ডট নোটেশন ব্যবহার করা হয়।
সিনট্যাক্স
db.yourCollectionName.update(
{ "_id" : yourObjectId },
{ $set : { "yourOuterFieldName.yourInnerFieldName" : yourValue } }
);
নমুনা ডেটা তৈরি করা
updateDocumentDemo কালেকশনে একটি ডকুমেন্ট ইনসার্ট করি যাতে StudentDetails এবং StudentOtherDetails নামে দুটি নেস্টেড অবজেক্ট থাকে।
> db.updateDocumentDemo.insertOne(
{
"StudentDetails" : {
"StudentFirstName" : "Adam",
"StudentLastName" : "Samith"
},
"StudentOtherDetails" : {
"StudentFavouriteSubject" : "MySQL",
"StudentScore" : 45
}
}
);
{ "acknowledged" : true, "insertedId" : ObjectId("5cd50bb32cba06f46efe9efe") }
ডকুমেন্ট দেখানো
> db.updateDocumentDemo.find().pretty();
আউটপুট:
{
"_id" : ObjectId("5cd50bb32cba06f46efe9efe"),
"StudentDetails" : {
"StudentFirstName" : "Adam",
"StudentLastName" : "Samith"
},
"StudentOtherDetails" : {
"StudentFavouriteSubject" : "MySQL",
"StudentScore" : 45
}
}
নেস্টেড ফিল্ড আপডেট করা
StudentOtherDetails অবজেক্টের ভিতরের StudentFavouriteSubject ফিল্ডকে "MySQL" থেকে "MongoDB" করতে:
> db.updateDocumentDemo.update(
{ "_id" : ObjectId("5cd50bb32cba06f46efe9efe") },
{ $set : { "StudentOtherDetails.StudentFavouriteSubject" : "MongoDB" } }
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
আপডেট.verify করা
> db.updateDocumentDemo.find().pretty();
আউটপুট:
{
"_id" : ObjectId("5cd50bb32cba06f46efe9efe"),
"StudentDetails" : {
"StudentFirstName" : "Adam",
"StudentLastName" : "Samith"
},
"StudentOtherDetails" : {
"StudentFavouriteSubject" : "MongoDB",
"StudentScore" : 45
}
}
টিপস: গভীর নেস্টেড ফিল্ডের জন্য ডট নোটেশন চালিয়ে যান (যেমন: outer.middle.inner.field)।