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

MongoDB-এ পুরো ডকুমেন্ট রিপ্লেস করে আপডেট করা

MongoDB-এ update()-এ দ্বিতীয় আর্গুমেন্ট হিসেবে পুরো নতুন ডকুমেন্ট দিলে পুরাতন ডকুমেন্টটি সম্পূর্ণরূপে রিপ্লেস হয় (শুধু _id বাদে)। এটি $set-এর মত আংশিক আপডেট নয়।

নমুনা ডেটা তৈরি

> db.replacingEntireDocumentDemo.insertOne({"StudentFirstName":"John","StudentLastName":"Smith","StudentCountryName":"US"});
{ "acknowledged": true, "insertedId": ObjectId("5cd3119bb64f4b851c3a13e8") }

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

> db.replacingEntireDocumentDemo.find().pretty();
আউটপুট:
{
  "_id": ObjectId("5cd3119bb64f4b851c3a13e8"),
  "StudentFirstName": "John",
  "StudentLastName": "Smith",
  "StudentCountryName": "US"
}

পুরো ডকুমেন্ট রিপ্লেস করা (নতুন ডকুমেন্ট দিয়ে)

> db.replacingEntireDocumentDemo.update(
  {"StudentFirstName":"John","StudentLastName":"Smith","StudentCountryName":"US"},
  {"StudentFirstName":"David","StudentLastName":"Miller","StudentCountryName":"AUS"}
);
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })

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

> db.replacingEntireDocumentDemo.find().pretty();
আউটপুট (পুরো ডকুমেন্ট পরিবর্তন হয়েছে):
{
  "_id": ObjectId("5cd3119bb64f4b851c3a13e8"),
  "StudentFirstName": "David",
  "StudentLastName": "Miller",
  "StudentCountryName": "AUS"
}

সতর্কতা: এই পদ্ধতিতে পুরনো ফিল্ডগুলো হারিয়ে যায়। আংশিক আপডেটের জন্য $set ব্যবহার করুন। আধুনিক MongoDB-এ replaceOne() মেথড ব্যবহার করা ভালো।

  1. MongoDB-তে ডকুমেন্ট আপডেট করা কিন্তু এক্সিস্টিং ডেটা ওভাররাইট না করা

  2. MongoDB-তে কাস্টম ভেরিয়েবল ব্যবহার করে ডকুমেন্ট আপডেট করা

  3. MongoDB-তে ডট নোটেশন ব্যবহার করে নেস্টেড ডকুমেন্ট আপডেট করা

  4. MongoDB-এ এমবেডেড ডকুমেন্ট থেকে নির্দিষ্ট এলিমেন্ট খুঁজে বের করা