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

MongoDB-এ সাব-ডকুমেন্টে অতিরিক্ত ফিল্ড যোগ করার পদ্ধতি

MongoDB-এ অ্যারেতে থাকা সাব-ডকুমেন্টে নতুন ফিল্ড যোগ করতে update() মেথড সহ $set এবং ডট নোটেশন (array index সহ) ব্যবহার করুন।

উদাহরণ

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

> db.addExtraFieldDemo.insertOne({
    "_id": 1,
    "UserName": "Larry",
    "UserOtherDetails": [
        { "UserCountryName": "US", "UserAge": 23 },
        { "UserCountryName": "UK", "UserAge": 24 }
    ]
});
{ "acknowledged" : true, "insertedId" : 1 }

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

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

আউটপুট:

{ "_id" : 1, "UserName" : "Larry", "UserOtherDetails" : [ { "UserCountryName" : "US", "UserAge" : 23 }, { "UserCountryName" : "UK", "UserAge" : 24 } ] }

প্রথম সাব-ডকুমেন্টে (ইনডেক্স ০) isMarried_ ফিল্ড যোগ করা

> db.addExtraFieldDemo.update(
    { "_id": 1 },
    { "$set": { "UserOtherDetails.0.isMarried_": true } }
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

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

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

আউটপুট:

{ "_id" : 1, "UserName" : "Larry", "UserOtherDetails" : [ { "UserCountryName" : "US", "UserAge" : 23, "isMarried_" : true }, { "UserCountryName" : "UK", "UserAge" : 24 } ] }

ব্যাখ্যা:

  • UserOtherDetails.0.isMarried_ — ডট নোটেশন দিয়ে অ্যারে ইনডেক্স 0 (প্রথম এলিমেন্ট) এর ফিল্ড সেট করা হয়েছে।
  • $set — ফিল্ড না থাকলে তৈরি করে, থাকলে আপডেট করে।
  • দ্বিতীয় এলিমেন্ট (ইনডেক্স ১) অপরিবর্তিত রয়েছে।

সতর্কতা: ইনডেক্সভিত্তিক আপডেটে অ্যারে অর্ডার পরিবর্তন হলে ভুল এলিমেন্ট আপডেট হতে পারে। নিরাপদ পদ্ধতিতে $elemMatch + $ (পজিশনাল) বা arrayFilters (MongoDB ৩.৬+) ব্যবহার করুন।

বিকল্প (arrayFilters - MongoDB ৩.৬+):

db.addExtraFieldDemo.update(
    { "_id": 1 },
    { "$set": { "UserOtherDetails.$[elem].isMarried_": true } },
    { arrayFilters: [{ "elem.UserCountryName": "US" }] }
);
  1. MongoDB-তে সব ডকুমেন্টে নতুন ফিল্ড যোগ করা ($addFields)

  2. MongoDB-তে সাব-ডকুমেন্ট দিয়ে সাব-ডকুমেন্ট ফিল্টার করা (aggregate + $unwind)

  3. MongoDB-তে অ্যাগ্রিগেশন দিয়ে ডকুমেন্ট ফিল্ড থেকে বিয়োগ করা ($subtract)

  4. MongoDB-এ বিদ্যমান ডকুমেন্টে নির্দিষ্ট ডেটা টাইপের ফিল্ড যোগ করা (লিস্ট, অবজেক্ট)