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

MongoDB-এ update() ও upsert:true দিয়ে প্রথম ডকুমেন্টে নতুন ফিল্ড যোগ করা

MongoDB-এ খালি কোয়ারি {} দিয়ে প্রথম ডকুমেন্ট আপডেট করা (upsert)

যদি কোয়ারি খালি {} দেওয়া হয়, তবে MongoDB প্রথম ডকুমেন্টটি (ন্যাচারাল অর্ডার) আপডেট করে। upsert:true থাকলে মিলে না গেলে নতুন ডকুমেন্ট তৈরি করে। এটি সিংগল ডকুমেন্ট আপডেটের ডিফল্ট আচরণ।

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

> db.demo162.insertOne({"StudentName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3684359e4f06af551997c2") }
> db.demo162.insertOne({"StudentName":"Bob"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3684389e4f06af551997c3") }
> db.demo162.insertOne({"StudentName":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e36843c9e4f06af551997c4") }

সব ডকুমেন্ট দেখানো (নোট: আউটপুটে StudentAge থাকে কিন্তু ইনসার্টে দিয়ে নি — সম্ভবত পূর্বে ছিল)

> db.demo162.find();

আউটপুট:

{ "_id" : ObjectId("5e3684359e4f06af551997c2"), "StudentName" : "Chris", "StudentAge" : 23 }
{ "_id" : ObjectId("5e3684389e4f06af551997c3"), "StudentName" : "Bob" }
{ "_id" : ObjectId("5e36843c9e4f06af551997c4"), "StudentName" : "David" }

প্রথম ডকুমেন্টে StudentAge=23 সেট করা (upsert:true)

> db.demo162.update({},{$set:{"StudentAge":23}},{upsert:true});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

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

> db.demo162.find();

আউটপুট:

{ "_id" : ObjectId("5e3684359e4f06af551997c2"), "StudentName" : "Chris", "StudentAge" : 23 }
{ "_id" : ObjectId("5e3684389e4f06af551997c3"), "StudentName" : "Bob" }
{ "_id" : ObjectId("5e36843c9e4f06af551997c4"), "StudentName" : "David" }

ব্যাখ্যা

  • {} — খালি কোয়ারি: কালেকশনের প্রথম ডকুমেন্ট টার্গেট হয়।
  • {$set:{"StudentAge":23}} — StudentAge ফিল্ড সেট/আপডেট।
  • {upsert:true} — যদি কোনো ডকুমেন্ট মেলে না (কালেকশন খালি) তবে নতুন ডকুমেন্ট তৈরি হবে।
  • শুধু প্রথম ডকুমেন্টে StudentAge যোগ হয়েছে, বাকিগুলো অপরিবর্তিত।

সুপারিশ: নির্দিষ্ট ডকুমেন্ট আপডেট করতে সবসময় স্পষ্ট কোয়ারি (যেমন {_id: ...}) দিন। খালি কোয়ারি প্রোডাকশনে রিস্কি।

  1. MongoDB-তে অনডিফাইনড এবং এক্সাক্ট ডকুমেন্ট রেকর্ড প্রদর্শন

  2. MongoDB-এ অ্যারে থেকে প্রথম কিছু এলিমেন্ট বাদ দিয়ে বাকি দেখানো ($slice)

  3. MongoDB-তে $group-এ সর্ট করে প্রথম দুটি ফিল্ড বের করা ($first + $$ROOT)

  4. MongoDB-এ নেস্টেড ডকুমেন্ট থেকে শুধু কী (keys) বের করা