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() মেথড ব্যবহার করা ভালো।