MongoDB-এ update() মেথডের সাথে $set অপারেটর ব্যবহার করে একাধিক ডকুমেন্টের পুরো ফিল্ড মান একসাথে পরিবর্তন করা যায়।
নমুনা ডেটা তৈরি করা
workingOfUpdateMethod কালেকশনে চারটি ডকুমেন্ট ইনসার্ট করি, সবের ClientCountryName "AUS"।
> db.workingOfUpdateMethod.insertOne({"ClientCountryName" : "AUS"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd506fe2cba06f46efe9efa") }
> db.workingOfUpdateMethod.insertOne({"ClientCountryName" : "AUS"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd507022cba06f46efe9efb") }
> db.workingOfUpdateMethod.insertOne({"ClientCountryName" : "AUS"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd507022cba06f46efe9efc") }
> db.workingOfUpdateMethod.insertOne({"ClientCountryName" : "AUS"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd507032cba06f46efe9efd") }
সকল ডকুমেন্ট দেখানো
> db.workingOfUpdateMethod.find().pretty();
আউটপুট:
{ "_id" : ObjectId("5cd506fe2cba06f46efe9efa"), "ClientCountryName" : "AUS" }
{ "_id" : ObjectId("5cd507022cba06f46efe9efb"), "ClientCountryName" : "AUS" }
{ "_id" : ObjectId("5cd507022cba06f46efe9efc"), "ClientCountryName" : "AUS" }
{ "_id" : ObjectId("5cd507032cba06f46efe9efd"), "ClientCountryName" : "AUS" }
multi: true দিয়ে সব ডকুমেন্ট আপডেট করা
ClientCountryName "AUS" থাকা সকল ডকুমেন্টে মান "UK" সেট করতে:
> db.workingOfUpdateMethod.update(
{ "ClientCountryName" : "AUS" },
{ $set: { "ClientCountryName" : "UK" } },
{ multi: true }
);
WriteResult({ "nMatched" : 4, "nUpserted" : 0, "nModified" : 4 })
গুরুত্বপূর্ণ: {multi: true} অপশন না দিলে শুধু প্রথম মেলানো ডকুমেন্ট আপডেট হবে। MongoDB 3.2+ এ updateMany() ব্যবহার করা ভালো।
আপডেট verify করা
> db.workingOfUpdateMethod.find().pretty();
আউটপুট:
{ "_id" : ObjectId("5cd506fe2cba06f46efe9efa"), "ClientCountryName" : "UK" }
{ "_id" : ObjectId("5cd507022cba06f46efe9efb"), "ClientCountryName" : "UK" }
{ "_id" : ObjectId("5cd507022cba06f46efe9efc"), "ClientCountryName" : "UK" }
{ "_id" : ObjectId("5cd507032cba06f46efe9efd"), "ClientCountryName" : "UK" }