কম্পিউটার টিউটোরিয়াল

MongoDB-এ এক-থেকে-অনেক এমবেডেড ডকুমেন্টে এন্ট্রি অ্যাপেন্ড করা

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" } ] } } }
);
  1. MongoDB-তে এমবেডেড ডকুমেন্ট অ্যারে কোয়েরি করে নতুন এলিমেন্ট যোগ করা ($push + $nin)

  2. MongoDB এгреগেশন: অন্য ডকুমেন্টের সমান ID গুলো গ্রুপ করা

  3. MongoDB-এ এমবেডেড ডকুমেন্টের অ্যারে ফিল্টার করা (৩ লেভেল)

  4. MongoDB-এ bulkWrite() দিয়ে এক কোয়েরিতে একাধিক ডকুমেন্ট আপডেট করা