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

MongoDB-এ পজিশনাল অপারেটর ($) ব্যবহার করে অ্যারে-র সাব-আইটেম আপডেট করা


MongoDB-এ অ্যারে-র নির্দিষ্ট এলিমেন্ট আপডেট করার জন্য পজিশনাল $ অপারেটর

MongoDB-এ একটি অ্যারে-র ভেতরে নির্দিষ্ট শর্ত পূরণকারী এলিমেন্টটি আপডেট করতে পজিশনাল $ অপারেটর ব্যবহার করা হয়। এটি কোয়েরি-তে ম্যাচ করা এলিমেন্টের ইনডেক্সকে রিপ্রেজেন্ট করে।

১. কালেকশন ও জটিল নেস্টেড ডেটা তৈরি

> db.demo22.insertOne({
  ProductId: 101,
  ProductDetails: [
    { ProductFirstPrice: '35', ProductSecondPrice: '75' },
    { ProductFirstPrice: '', ProductSecondPrice: '' },
    { ProductFirstPrice: '78', ProductSecondPrice: '24' }
  ]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e14c0b422d07d3b95082e70") }

২. ডকুমেন্ট দেখানো

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

আউটপুট:

{
  "_id" : ObjectId("5e14c0b422d07d3b95082e70"),
  "ProductId" : 101,
  "ProductDetails" : [
    { "ProductFirstPrice" : "35", "ProductSecondPrice" : "75" },
    { "ProductFirstPrice" : "", "ProductSecondPrice" : "" },
    { "ProductFirstPrice" : "78", "ProductSecondPrice" : "24" }
  ]
}

৩. পজিশনাল $ অপারেটর দিয়ে আপডেট (ProductFirstPrice: "35" वाली এলিমেন্ট খালি করা)

> db.demo22.update(
  { "ProductDetails.ProductFirstPrice" : "35" },
  { $set : { "ProductDetails.$.ProductFirstPrice" : "" }},
  false, true
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

ব্যাখ্যা:

  • কোয়েরি: ProductDetails.ProductFirstPrice: "35" - অ্যারে-তে এই ভ্যালুইتاحার প্রথম এলিমেন্ট খুঁজে বের করে।
  • আপডেট: ProductDetails.$.ProductFirstPrice - $ সMBOLটি ম্যাচ করা এলিমেন্টের পজিশন (ইনডেক্স ০) বোঝায়।
  • false, true - upsert: false, multi: true (পুরনো সিনট্যাক্স)।

৪. আপডেটের পর ডকুমেন্ট

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

আউটপুট:

{
  "_id" : ObjectId("5e14c0b422d07d3b95082e70"),
  "ProductId" : 101,
  "ProductDetails" : [
    { "ProductFirstPrice" : "", "ProductSecondPrice" : "75" },
    { "ProductFirstPrice" : "", "ProductSecondPrice" : "" },
    { "ProductFirstPrice" : "78", "ProductSecondPrice" : "24" }
  ]
}

প্রথম এলিমেন্টের ProductFirstPrice "35" থেকে খালি স্ট্রিং "" হয়ে গেছে। অন্য এলিমেন্টগুলো অপরিবর্তিত।


  1. MongoDB-এ নেস্টেড অ্যারে অ্যাগ্রিগেট করার পদ্ধতি

  2. MongoDB-তে সাবডকুমেন্টের অ্যারে কুয়েরি

  3. MongoDB-এ নেস্টেড অ্যারে সর্ট করা

  4. MongoDB-তে distinct() ব্যবহার করে অ্যারেতে ইউনিক আইটেম বের করা