MongoDB-এ নেস্টেড অ্যারে (অ্যারের ভেতরের অ্যারে) তে ডেটা ইনসার্ট করতে $addToSet এবং পজিশনাল $ অপারেটর ব্যবহার করা হয়।
নমুনা ডেটা তৈরি করা
insertDataIntoArrayDemo কালেকশনে একটি ডকুমেন্ট ইনসার্ট করি যাতে UserDetails অ্যারেতে প্রতিটি অবজেক্টে userGroupMessage নামে একটি অ্যারে থাকে।
> db.insertDataIntoArrayDemo.insertOne(
{
"UserDetails":[
{ "UserId" : "user121", "userGroupMessage": [] },
{ "UserId" : "user221", "userGroupMessage": ["Cool","Good Morning"] }
]
}
);
{ "acknowledged" : true, "insertedId" : ObjectId("5cd694e157806ebf1256f128") }
ডকুমেন্ট দেখানো
> db.insertDataIntoArrayDemo.find().pretty();
আউটপুট:
{
"_id" : ObjectId("5cd694e157806ebf1256f128"),
"UserDetails" : [
{ "UserId" : "user121", "userGroupMessage" : [ ] },
{ "UserId" : "user221", "userGroupMessage" : [ "Cool", "Good Morning" ] }
]
}
নেস্টেড অ্যারেতে ডেটা ইনসার্ট করা
UserId: "user121" 가진 এলিমেন্টের userGroupMessage অ্যারেতে "Hello" যোগ করি:
> db.insertDataIntoArrayDemo.update(
{ "UserDetails.UserId": "user121" },
{ "$addToSet": { "UserDetails.$.userGroupMessage": "Hello" } }
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
ফলাফল দেখানো
> db.insertDataIntoArrayDemo.find().pretty();
আউটপুট:
{
"_id" : ObjectId("5cd694e157806ebf1256f128"),
"UserDetails" : [
{ "UserId" : "user121", "userGroupMessage" : [ "Hello" ] },
{ "UserId" : "user221", "userGroupMessage" : [ "Cool", "Good Morning" ] }
]
}
নোট: $ কোয়েরি মেলানো প্রথম এলিমেন্টকে টার্গেট করে। একাধিক এলিমেন্ট আপডেট করতে arrayFilters (MongoDB 3.6+) ব্যবহার করুন।