MongoDB-এ একটি ডকুমেন্টের ভেতরের অ্যারে (এমবেডেড ডকুমেন্ট) এ নতুন এন্ট্রি যোগ করতে $push অপারেটর ব্যবহার করা হয়। এটি অ্যারের শেষে নতুন এলিমেন্ট যোগ করে।
নমুনা কালেকশন তৈরি
> db.demo253.insertOne({
_id: "101",
isActive: false,
details: [
{ "Name": "Chris" },
{ "CountryName": "US" }
]
});
{ "acknowledged": true, "insertedId": "101" }
ডকুমেন্ট দেখানো (আপডেটের আগে)
> db.demo253.find();
আউটপুট:
{ "_id": "101", "isActive": false, "details": [ { "Name": "Chris" }, { "CountryName": "US" } ] }
$push দিয়ে নতুন এন্ট্রি অ্যাপেন্ড করা
> db.demo253.update(
{ _id: '101' },
{ $push: { details: { Age: 21 } } }
);
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })
আপডেটের পর ডকুমেন্ট যাচাই
> db.demo253.find();
আউটপুট:
{
"_id": "101",
"isActive": false,
"details": [
{ "Name": "Chris" },
{ "CountryName": "US" },
{ "Age": 21 }
]
}
ব্যাখ্যা:
$push: { details: { Age: 21 } }-detailsঅ্যারেতে নতুন অবজেক্ট{ Age: 21 }যোগ করা হয়েছে।- মongodb স্কিমালেস, তাই অ্যারেতে ভিন্ন স্ট্রাকচারের অবজেক্ট থাকতে পারে (এখানে Name, CountryName, Age - আলাদা ফিল্ড)।
$push এর変種
| অপারেটর | কাজ |
|---|---|
$push | অ্যারের শেষে যোগ করে |
$push: { $each: [val1, val2] } | একসাথে একাধিক মান যোগ করে |
$push: { $slice: -5 } | সর্বোচ্চ ৫টি এলিমেন্ট রাখে (পুরনো বাদ দেয়) |
$push: { $sort: 1 } | যোগ করার পর সর্ট করে রাখে |
$addToSet | ডুপ্লিকেট না হলে যোগ করে (সেট আচরণ) |
উদাহরণ: $each দিয়ে একাধিক যোগ
db.demo253.update(
{ _id: '101' },
{ $push: { details: { $each: [ { Age: 22 }, { City: "NYC" } ] } } }
);