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

MongoDB-এ অ্যারে এলিমেন্ট শর্ত অনুযায়ী আপডেট করে $push করার পদ্ধতি

MongoDB-এ অ্যারে অফ অবজেক্টস-এ নির্দিষ্ট শর্ত পূরণ করা এলিমেন্টে নতুন ফিল্ড যোগ করতে $push সহ পজিশনাল $ অপারেটর ব্যবহার করুন।

উদাহরণ

অ্যারে অফ অবজেক্টস সহ ডকুমেন্ট তৈরি করুন:

> db.updateArrayElementDemo.insertOne({
    "UserDetails": [ { "UserName": "Chris", "UserAge": 23 } ]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5ce9029378f00858fb12e90d") }

ডকুমেন্টটি দেখুন:

> db.updateArrayElementDemo.find().pretty();

আউটপুট:

{ "_id" : ObjectId("5ce9029378f00858fb12e90d"), "UserDetails" : [ { "UserName" : "Chris", "UserAge" : 23 } ] }

UserAge = 23 olan এলিমেন্টে UserCountryName ফিল্ড যোগ করা (পুশ)

db.updateArrayElementDemo.update(
    { "UserDetails.UserAge": 23 },
    { "$push": { "UserDetails.$.UserCountryName": "US" } }
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

আপডেট হওয়ার পর ডকুমেন্টটি যাচাই করুন:

> db.updateArrayElementDemo.find().pretty();

আউটপুট:

{ "_id" : ObjectId("5ce9029378f00858fb12e90d"), "UserDetails" : [ { "UserName" : "Chris", "UserAge" : 23, "UserCountryName" : [ "US" ] } ] }

ব্যাখ্যা:

  • UserDetails.UserAge: 23 — অ্যারেতে UserAge ২৩ থাকা এলিমেন্ট খুঁজে বের করে।
  • UserDetails.$.UserCountryName — পজিশনাল $ ম্যাচ করা এলিমেন্টকে রেফার করে, তার UserCountryName অ্যারেতে "US" পুশ করেছে।
  • UserCountryName আগে ছিল না, তাই নতুন অ্যারে তৈরি হয়েছে।

সতর্কতা: শুধু প্রথম ম্যাচ করা এলিমেন্ট আপডেট হয়। একাধিক এলিমেন্ট আপডেট করতে arrayFilters (MongoDB ৩.৬+) ব্যবহার করুন:

db.updateArrayElementDemo.update(
    { },
    { "$push": { "UserDetails.$[elem].UserCountryName": "US" } },
    { arrayFilters: [{ "elem.UserAge": 23 }], multi: true }
);
  1. MongoDB-এ নির্দিষ্ট আইডি वाले সব ডকুমেন্ট আপডেট করা

  2. MongoDB-এ অ্যারে অবজেক্টের নির্দিষ্ট ইনডেক্স আপডেট করা

  3. MongoDB-তে $slice ব্যবহার করে অ্যারে থেকে একমাত্র এলিমেন্ট বের করা

  4. MongoDB-তে অ্যাগ্রিগেশন দিয়ে অ্যারে এলিমেন্টের গড় (Average) বের করা ($avg)