মঙ্গোডিবি ডকুমেন্ট ডেটা আপডেট করা mongo shell ব্যবহার করে

এই অধ্যায়টি mongo shell ব্যবহার করে মঙ্গোডিবি ডকুমেন্ট ডেটা আপডেট করার পরিচিতি দেয়। মঙ্গোডিবি বিভিন্ন প্রকারের অপারেটর দ্বারা আপডেটিং সমর্থন করে, এবং এটি একাধিক আপডেট ফাংশনও সমর্থন করে।

পরীক্ষা তথ্য প্রস্তুত করুন

ইনভেন্টরি কালেকশনে একটি পরীক্ষার তথ্য ব্যাচ ঢুকান।

db.inventory.insertMany( [
   { item: "ক্যানভাস", qty: 100, size: { h: 28, w: 35.5, uom: "cm" }, status: "A" },
   { item: "জার্নাল", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },
   { item: "ম্যাট", qty: 85, size: { h: 27.9, w: 35.5, uom: "cm" }, status: "A" },
   { item: "মাউসপ্যাড", qty: 25, size: { h: 19, w: 22.85, uom: "cm" }, status: "P" },
   { item: "নোটবুক", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "P" },
   { item: "পেপার", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" },
   { item: "প্ল্যানার", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" },
   { item: "পোস্টকার্ড", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" },
   { item: "স্কেচবুক", qty: 80, size: { h: 14, w: 21, uom: "cm" }, status: "A" },
   { item: "স্কেচ প্যাড", qty: 95, size: { h: 22.85, w: 30.5, uom: "cm" }, status: "A" }
] );

আপডেট অপারেটর সিনট্যাক্স

ডকুমেন্ট আপডেট করার জন্য, মঙ্গোডিবি মাল্টিপল আপডেট অপারেটর (যেমন, $set) প্রদান করে ক্ষেত্রের মান পরিবর্তন করতে।

আপডেট অপারেটর প্যারামিটারগুলির ফর্ম্যাট হল:

{
  <update operator>: { <field1>: <value1>, ... },
  <update operator>: { <field2>: <value2>, ... },
  ...
}

ব্যাখ্যা:

  • : আপডেট অপারেটর
  • : ক্ষেত্রের নাম
  • : ক্ষেত্রের প্যারামিটার

$set অপারেটর

যেহেতু ফিল্ড যেতেনা তবে পক্ষথলে একটি নতুন ফিল্ড তৈরি করার জন্য ব্যবহৃত হয়।

একক ডকুমেন্ট আপডেট করা

db.collection.updateOne() মেথড ব্যবহার করে একটি ডকুমেন্ট আপডেট করুন।

db.inventory.updateOne(
   { item: "পেপার" },
   {
     $set: { "size.uom": "cm", status: "P" },
     $currentDate: { lastModified: true }
   }
)

আপডেট ব্যাখ্যা:

  • প্রথমে, ক্যুয়ারি শর্ত (আইটেম = পেপার) ব্যবহার করে প্রথম ডকুমেন্টটি পেতে।
  • $set অপারেটর ব্যবহার করে সাইজ.uom ফিল্ডের মানকে সিএম-এ আপডেট করুন এবং স্ট্যাটাস ফিল্ডের মানকে P এ আপডেট করুন।
  • $currentDate অপারেটর ব্যবহার করে লাস্ট মডিফাইড ফিল্ডের মানকে বর্তমান তারিখে আপডেট করুন। যদি লাস্টমডিফাইড ফিল্ড অস্তিত্বে না থাকে, তবে $currentDate ফিল্ডটি তৈরি করবে।

একাধিক ডকুমেন্ট আপডেট করা

শর্ত পূরণ করা একাধিক ডকুমেন্ট আপডেট করতে db.collection.updateMany() মেথড ব্যবহার করুন।

db.inventory.updateMany(
   { "qty": { $lt: 50 } },
   {
     $set: { "size.uom": "in", status: "P" },
     $currentDate: { lastModified: true }
   }
)

আপডেট ব্যাখ্যা:

  • প্রথমে, সম্পূর্ণ ডকুমেন্ট গুলি পেতে কুয়েরি শর্ত ব্যবহার করে (যায়গা < 50)।
  • $set অপারেটর ব্যবহার করে সাইজ.uom ফিল্ডের মানকে ইনচে আপডেট করুন এবং স্ট্যাটাস ফিল্ডের মানকে P এ আপডেট করুন।
  • $currentDate অপারেটর ব্যবহার করে লাস্ট মডিফাইড ফিল্ডের মানকে বর্তমান তারিখে আপডেট করুন। যদি লাস্টমডিফাইড ফিল্ড অস্তিত্বে না থাকে, তবে $currentDate ফিল্ডটি তৈরি করবে।

টিপ: $lt অপারেটর অবদানের মাধ্যমে অর্থ প্রদান করে।

নথি প্রতিস্থাপন করুন

db.collection.replaceOne() মেথড ব্যবহার করে একটি ডকুমেন্টের বিষয়বস্তু প্রতিস্থাপন করুন (শুধুমাত্র _id ফিল্ডবদ্ধ). প্রতিস্থাপন ডকুমেন্টের মূল ডকুমেন্ট থেকে ভিন্ন ফিল্ড থাকতে পারে। _id ফিল্ড অপরিবর্তনী হওয়া সুরক্ষিত হলে তা অবহিত করা যেতে পারে। তবে, যদি আপনি _id ফিল্ড সহ অন্তর্ভুক্ত করেন, তবে আইডি মান সংযুক্ত ডকুমেন্টের আইডির সাথে সামঞ্জস্যপূর্ণ হতে হবে।

db.inventory.replaceOne(
   { item: "paper" },
   { item: "paper", instock: [ { warehouse: "A", qty: 60 }, { warehouse: "B", qty: 40 } ] }
)

ব্যাখ্যা:

  • প্রথমে, প্রথম ডকুমেন্ট পেতে অনুসন্ধান শর্ত (item=paper) ব্যবহার করুন।
  • replaceOne মেথডের দ্বিতীয় প্যারামিটারের বিষয়বস্তুতে মেলানো ডকুমেন্টটি প্রতিস্থাপন করুন।

আপডেট আচরণ

পদাত্মিকতা

MongoDB-তে সমস্ত লেখা আপাতত একক ডকুমেন্ট স্তরে পরম রয়েছে।

_id ফিল্ড

_id ফিল্ড অপরিবর্তনী এবং আপডেট করা যাবে না।