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

MongoDB-তে দুই শর্তের ভিত্তিতে কোয়ান্টিটি আপডেট করা (নেস্টেড অ্যারে)

MongoDB-তে নেস্টেড অ্যারে ভিতরের নির্দিষ্ট এলিমেন্ট আপডেট করতে কোয়েরিতে দুটি শর্ত (প্যারেন্ট _id এবং চাইল্ড id) দিয়ে ম্যাচ করে, পজিশনাল $ অপারেটর দিয়ে সেটি আপডেট করা হয়।

উদাহরণ: প্রোডাক্ট কোয়ান্টিটি সহ ডকুমেন্ট (দুই ডকুমেন্ট)

> db.demo605.insertOne({
    _id: 1,
    "Information": [
        { "id": "Product-1", "Quantity": 50 },
        { "id": "Product-2", "Quantity": 100 }
    ]
});
> db.demo605.insertOne({
    _id: 2,
    "Information": [
        { "id": "Product-1", "Quantity": 30 },
        { "id": "Product-2", "Quantity": 40 }
    ]
});

_id=1 এবং Product-1-এর কোয়ান্টিটি 1000 করা

> db.demo605.update(
    { _id: 1, "Information.id": "Product-1" },
    { $set: { "Information.$.Quantity": 1000 } }
);

রেজাল্ট: WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

ফলাফল

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

আউটপুট: _id=1-এর Product-1-এর Quantity 1000 হয়েছে, বাকি অপরিবর্তিত।

দ্রষ্টব্য (টাইপো ফিক্স): কোয়েরিতে "Product1" লেখা আছে (হাইফেন নেই), কিন্তু ডেটায় "Product-1"। রিয়াল কোডে হাইফেন থাকতে হবে।

সেরা অনুশীলন:

  • MongoDB 3.6+ এ arrayFilters ব্যবহার করুন: { arrayFilters: [{ "elem.id": "Product-1" }], $set: { "Information.$[elem].Quantity": 1000 } }
  • এটি একাধিক ম্যাচ হলে সব আপডেট করে (পজিশনাল $ শুধু প্রথমটি)
  • আপডেটের আগে find() দিয়ে টার্গেট যাচাই করুন
  1. MongoDB-এ update() এবং $set ব্যবহার করে নির্দিষ্ট ফিল্ড আপডেট করা

  2. MongoDB-এ অগ্রেশন পাইপলাইনের পর আপডেট করা

  3. MongoDB-তে কন্ডিশনাল আপডেট করার পদ্ধতি

  4. MongoDB-এ ট্যাগ আপডেট করার পদ্ধতি