MongoDB-এ এমবেডেড অ্যারেতে ডকুমেন্ট পুশ করা
যদি কোনো ফিল্ডে অবজেক্টের অ্যারে থাকে (এমবেডেড ডকুমেন্ট অ্যারে), তবে $push অপারেটর দিয়ে সেখানে নতুন অবজেক্ট যোগ করা যায়। এটি update() বা updateOne() এর সাথে ব্যবহার হয়।
উদাহরণ: ডেটা ইনসার্ট
> db.demo288.insertOne({"Name":"Chris","details":[{"CountryName":"US","Marks":78},{"CountryName":"UK","Marks":68}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e4c0393f49383b52759cbbe") }
প্রদর্শন
> db.demo288.find();
আউটপুট:
{ "_id" : ObjectId("5e4c0393f49383b52759cbbe"), "Name" : "Chris", "details" : [ { "CountryName" : "US", "Marks" : 78 }, { "CountryName" : "UK", "Marks" : 68 } ] }
$push দিয়ে নতুন ডকুমেন্ট যোগ
> db.demo288.update( {Name: "Chris"}, {$push:{ "details":{"CountryName" : "AUS", "Marks" : 98} }}, {upsert:true});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
আপডেট পর পরিদর্শন
> db.demo288.find();
আউটপুট:
{ "_id" : ObjectId("5e4c0393f49383b52759cbbe"), "Name" : "Chris", "details" : [ { "CountryName" : "US", "Marks" : 78 }, { "CountryName" : "UK", "Marks" : 68 }, { "CountryName" : "AUS", "Marks" : 98 } ] }
ব্যাখ্যা
{Name: "Chris"}— ফিল্টার: কোন ডকুমেন্ট আপডেট হবে।{$push: {"details": {...}}}—detailsঅ্যারেতে নতুন অবজেক্ট যুক্ত করে।{upsert:true}— ফিল্টার মিলে না গেলে নতুন ডকুমেন্ট তৈরি করবে (এখানে মেলা গেলে আপডেট হলো)।
নোট: বর্তমান ভার্সনে update() ডিপ্রিকেটেড। updateOne() বা updateMany() ব্যবহার করুন।