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

MongoDB-এ শর্তসাপেক্ষ আপডেট (Conditional Update) করা

MongoDB-এ update() ও $set ব্যবহার করে শর্তসাপেক্ষ আপডেট

নির্দিষ্ট শর্ত পূরণ করা ডকুমেন্টে নির্দিষ্ট ফিল্ড আপডেট করার জন্য update() (বা updateOne()/updateMany()) এর সাথে $set অপারেটর ব্যবহার করা হয়।

উদাহরণ: ডেটা ইনসার্ট

> db.demo150.insertOne({"StudentId":101,"StudentName":"Chris","StudentMarks":35});
{ "acknowledged" : true, "insertedId" : ObjectId("5e350dcdfdf09dd6d08539d3") }
> db.demo150.insertOne({"StudentId":102,"StudentName":"Chris","StudentMarks":55});
{ "acknowledged" : true, "insertedId" : ObjectId("5e350dcefdf09dd6d08539d4") }
> db.demo150.insertOne({"StudentId":103,"StudentName":"David","StudentMarks":34});
{ "acknowledged" : true, "insertedId" : ObjectId("5e350dcffdf09dd6d08539d5") }
> db.demo150.insertOne({"StudentId":104,"StudentName":"Chris","StudentMarks":38});
{ "acknowledged" : true, "insertedId" : ObjectId("5e350dd0fdf09dd6d08539d6") }

সব ডকুমেন্ট দেখানো

> db.demo150.find();

আউটপুট:

{ "_id" : ObjectId("5e350dcdfdf09dd6d08539d3"), "StudentId" : 101, "StudentName" : "Chris", "StudentMarks" : 35 }
{ "_id" : ObjectId("5e350dcefdf09dd6d08539d4"), "StudentId" : 102, "StudentName" : "Chris", "StudentMarks" : 55 }
{ "_id" : ObjectId("5e350dcffdf09dd6d08539d5"), "StudentId" : 103, "StudentName" : "David", "StudentMarks" : 34 }
{ "_id" : ObjectId("5e350dd0fdf09dd6d08539d6"), "StudentId" : 104, "StudentName" : "Chris", "StudentMarks" : 38 }

শর্তসাপেক্ষ আপডেট (StudentId=103 হলে Marks=97)

> db.demo150.update({"StudentId":103},{$set:{"StudentMarks":97}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

আপডেট পর পরিদর্শন

> db.demo150.find();

আউটপুট:

{ "_id" : ObjectId("5e350dcdfdf09dd6d08539d3"), "StudentId" : 101, "StudentName" : "Chris", "StudentMarks" : 35 }
{ "_id" : ObjectId("5e350dcefdf09dd6d08539d4"), "StudentId" : 102, "StudentName" : "Chris", "StudentMarks" : 55 }
{ "_id" : ObjectId("5e350dcffdf09dd6d08539d5"), "StudentId" : 103, "StudentName" : "David", "StudentMarks" : 97 }
{ "_id" : ObjectId("5e350dd0fdf09dd6d08539d6"), "StudentId" : 104, "StudentName" : "Chris", "StudentMarks" : 38 }

ব্যাখ্যা

  • {"StudentId":103} — কোয়ারি: শুধু এই আইডি वाला ডকুমেন্ট।
  • {$set:{"StudentMarks":97}} — শুধু StudentMarks ফিল্ড আপডেট, বাকি অপরিবর্তিত।
  • nMatched:1, nModified:1 — একটা মিলে, একটা আপডেট হলো।

সর্বোত্তম অনুশীলন: একাধিক ডকুমেন্ট আপডেট করতে updateMany(), একটা করতে updateOne() ব্যবহার করুন। update() ডিপ্রিকেটেড।

  1. MongoDB-এ নির্দিষ্ট ফিল্ড মান আপডেট করা ($set অপারেটর)

  2. MongoDB-তে find()-এ প্রজেকশন দিয়ে _id ফিল্ড হাইড করা

  3. MongoDB-এ একটি ফিল্ডের সব মান আপডেট করা নির্দিষ্ট স্ট্রিং দিয়ে

  4. MongoDB-এ ফর্মুলা দিয়ে কালেকশনের সব ডকুমেন্টের ফিল্ড আপডেট করা