MongoDB-এ নেস্টেড অবজেক্টের ভেতরের অ্যারেতে নতুন এলিমেন্ট যোগ করতে $elemMatch এবং $push অপারেটর ব্যবহার করুন।
উদাহরণ
নেস্টেড স্ট্রাকচার সহ ডকুমেন্ট তৈরি করুন:
> db.pushNewItemsDemo.insertOne({
"_id" : 1,
"StudentScore" : 56,
"StudentOtherDetails" : [
{
"StudentName" : "John",
"StudentFriendName" : ["Bob", "Carol"]
},
{
"StudentName" : "David",
"StudentFriendName" : ["Mike", "Sam"]
}
]
});
{ "acknowledged" : true, "insertedId" : 1 }
ডকুমেন্টটি দেখুন:
> db.pushNewItemsDemo.find();
আউটপুট:
{ "_id" : 1, "StudentScore" : 56, "StudentOtherDetails" : [ { "StudentName" : "John", "StudentFriendName" : [ "Bob", "Carol" ] }, { "StudentName" : "David", "StudentFriendName" : [ "Mike", "Sam" ] } ] }
David-এর Friend লিস্টে "James" যোগ করা
> db.pushNewItemsDemo.update(
{"_id": 1, "StudentOtherDetails": {"$elemMatch": {"StudentName": "David"}}},
{"$push": {"StudentOtherDetails.$.StudentFriendName": "James"}}
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
আপডেট হওয়ার পর ডকুমেন্টটি যাচাই করুন:
> db.pushNewItemsDemo.find();
আউটপুট:
{ "_id" : 1, "StudentScore" : 56, "StudentOtherDetails" : [ { "StudentName" : "John", "StudentFriendName" : [ "Bob", "Carol" ] }, { "StudentName" : "David", "StudentFriendName" : [ "Mike", "Sam", "James" ] } ] }
ব্যাখ্যা:
$elemMatchদিয়েStudentOtherDetailsঅ্যারেতেStudentName: "David"থাকা এলিমেন্টটি লোকেট করা হয়েছে।$pushএবং পজিশনাল$অপারেটর ব্যবহার করে সেই এলিমেন্টেরStudentFriendNameঅ্যারেতে "James" যোগ করা হয়েছে।