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

MongoDB-এ সবচেয়ে দ্রুত আপডেট: update() নাকি save()?


MongoDB-এ update() এবং save()-র পারফরম্যান্স তুলনা

MongoDB-এ ডকুমেন্ট আপডেট করার সবচেয়ে দ্রুত এবং কার্যকর পদ্ধতি হলো update() (বা আধুনিক ভার্সনে updateOne()/updateMany())। save() মেথড পুরনো এবং কম দক্ষ।

১. কালেকশন ও নমুনা ডেটা তৈরি

> db.demo320.insertOne({"Name":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50ee51f8647eb59e562066") }
> db.demo320.insertOne({"Name":"Robert"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50ee55f8647eb59e562067") }
> db.demo320.insertOne({"Name":"Mike"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50ee59f8647eb59e562068") }
> db.demo320.insertOne({"Name":"Sam"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50ee5bf8647eb59e562069") }

২. আপডেটের আগে ডকুমেন্টগুলো

> db.demo320.find();

আউটপুট:

{ "_id" : ObjectId("5e50ee51f8647eb59e562066"), "Name" : "Chris" }
{ "_id" : ObjectId("5e50ee55f8647eb59e562067"), "Name" : "Robert" }
{ "_id" : ObjectId("5e50ee59f8647eb59e562068"), "Name" : "Mike" }
{ "_id" : ObjectId("5e50ee5bf8647eb59e562069"), "Name" : "Sam" }

৩. update() ব্যবহার করে "Mike" কে "Bob" বানানো

> db.demo320.update({Name:"Mike"},{$set:{Name:"Bob"}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

ব্যাখ্যা:

  • {Name:"Mike"} - ফিল্টার (কোন ডকুমেন্ট আপডেট হবে)।
  • {$set:{Name:"Bob"}} - শুধু Name ফিল্ড আপডেট করবে, অন্যান্য ফিল্ড অপরিবর্তিত থাকবে।
  • WriteResult - nModified: 1 মানে ১টি ডকুমেন্ট পরিবর্তন হয়েছে।

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

> db.demo320.find();

আউটপুট:

{ "_id" : ObjectId("5e50ee51f8647eb59e562066"), "Name" : "Chris" }
{ "_id" : ObjectId("5e50ee55f8647eb59e562067"), "Name" : "Robert" }
{ "_id" : ObjectId("5e50ee59f8647eb59e562068"), "Name" : "Bob" }
{ "_id" : ObjectId("5e50ee5bf8647eb59e562069"), "Name" : "Sam" }

কেন update() দ্রুত?

  • Partial Update: $set ব্যবহার করে শুধু নির্দিষ্ট ফিল্ড আপডেট হয়, পুরো ডকুমেন্ট রি-রাইট হয় না।
  • In-Place Update: ডকুমেন্ট আকার না বড়ালে ইন-প্লেস আপডেট হয়।
  • save() পুরো ডকুমেন্ট রিপ্লেস করে (Remove + Insert), যা ধীর এবং _id পরিবর্তন হলে নতুন ডকুমেন্ট তৈরি করে।

সুপারিশ: আধুনিক MongoDB ড্রাইভারে updateOne(), updateMany(), findOneAndUpdate() ব্যবহার করুন।


  1. MongoDB-এ অ্যারেতে সব এলিমেন্ট আপডেট করা ($[] অল পজিশনাল অপারেটর)

  2. MongoDB-তে কন্ডিশনাল আপডেট করার পদ্ধতি

  3. MongoDB-এ সম্পূর্ণ ডকুমেন্ট আপডেট করার স্রেষ্ঠ পদ্ধতি

  4. MongoDB-এ ট্যাগ আপডেট করার পদ্ধতি