নেস্টেড অবজেক্টের অ্যারেতে $push দিয়ে এলিমেন্ট যোগ
MongoDB-এ একটি অবজেক্টের ভেতরে থাকা অ্যারেতে নতুন এলিমেন্ট যোগ করতে ডট নোটেশন সহ $push অপারেটর ব্যবহার করা হয়।
নমুনা ডেটা তৈরি
> db.demo449.insertOne({
details1: {
details2: [{ _id: new ObjectId(), Name: "Chris" }],
details3: [{ _id: new ObjectId(), Name: "David" }]
}
})
সমস্ত ডকুমেন্ট দেখানো
> db.demo449.find()
আউটপুট:
{ "_id": ObjectId("..."), "details1": { "details2": [{ "_id": ObjectId("..."), "Name": "Chris" }], "details3": [{ "_id": ObjectId("..."), "Name": "David" }] } }
নেস্টেড অ্যারেতে আইটেম যোগ করার কোয়েরি
> db.demo449.update(
{ _id: ObjectId("5e7a40e971f552a0ebb0a6e3") },
{ $push: { 'details1.details2': { _id: ObjectId(), "Name": "Carol" } } }
)
ফলাফল:
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })
আপডেট後の ডকুমেন্ট
> db.demo449.find()
আউটপুট:
{ "_id": ObjectId("..."), "details1": { "details2": [{ "_id": ObjectId("..."), "Name": "Chris" }, { "_id": ObjectId("..."), "Name": "Carol" }], "details3": [{ "_id": ObjectId("..."), "Name": "David" }] } }
ব্যাখ্যা
details1.details2: ডট নোটেশন দিয়ে নেস্টেড অ্যারের পথ নির্দিষ্ট করা হয়েছে$push: অ্যারেতে নতুন ডকুমেন্ট যুক্ত করে- নতুন ডকুমেন্টে
_idস্বয়ংক্রিয় জেনারেট করা হয়েছেObjectId()দিয়ে
এই প্যাটার্ন যেকোনো গভীর নেস্টেড অ্যারেতে কাজ করে।