MongoDB-এ update() ও $push ব্যবহার করে এমবেডেড অ্যারেতে ডকুমেন্ট পুশ
যদি কোনো ফিল্ডে অবজেক্টের অ্যারে থাকে, তবে $push অপারেটর দিয়ে সেখানে নতুন অবজেক্ট যুক্ত করা যায়। এটি updateOne() বা updateMany()-এর সাথে ব্যবহার করা হয়।
উদাহরণ: ডেটা ইনসার্ট
> db.demo310.insertOne({"Name":"Chris","details":[{"Id":101,"Subject":"MySQL"},{"Id":102,"Subject":"MongoDB"}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50cabdf8647eb59e562043") }
প্রদর্শন
> db.demo310.find();
আউটপুট:
{ "_id" : ObjectId("5e50cabdf8647eb59e562043"), "Name" : "Chris", "details" : [ { "Id" : 101, "Subject" : "MySQL" }, { "Id" : 102, "Subject" : "MongoDB" } ] }
$push দিয়ে নতুন ডকুমেন্ট যোগ (Id:103, Subject:"Java")
> db.demo310.update({ _id:ObjectId("5e50cabdf8647eb59e562043")}, { $push: {"details": { "Id" : 103, "Subject": "Java" } } });
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
আপডেট পর পরিদর্শন
> db.demo310.find();
আউটপুট:
{ "_id" : ObjectId("5e50cabdf8647eb59e562043"), "Name" : "Chris", "details" : [ { "Id" : 101, "Subject" : "MySQL" }, { "Id" : 102, "Subject" : "MongoDB" }, { "Id" : 103, "Subject" : "Java" } ] }
ব্যাখ্যা
{_id:ObjectId(...)}— সুনির্দিষ্ট ডকুমেন্ট টার্গেট করতে _id ব্যবহার করা ভালো।{$push: {"details": {...}}}—detailsঅ্যারেতে নতুন অবজেক্ট যুক্ত করে।- অপশনাল:
{$push: {"details": {$each: [...], $slice: -5}}}দিয়ে একসাথে একাধিক পুশ বা সাইজ লিমিট রাখা যায়।
সুপারিশ: update() বদলে updateOne() ব্যবহার করুন।