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

MongoDB-এ $unset ব্যবহার করে নেস্টেড অবজেক্ট/ফিল্ড মুছে ফেলা


MongoDB-এ $unset অপারেটর দিয়ে নেস্টেড ফিল্ড বা অবজেক্ট পুরোপুরি মুছে ফেলা

MongoDB-এ একটি ডকুমেন্ট থেকে নির্দিষ্ট ফিল্ড বা নেস্টেড অবজেক্ট পুরোপুরি সরিয়ে ফেলার জন্য $unset অপারেটর ব্যবহার করা হয়। এটি ফিল্ডের মান null করবে না, বরং ফিল্ডটি কী-সহ মুছে ফেলে।

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

> db.demo348.insertOne({
  "details": { "studentDetails": { StudentName: "Robert" } }
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e553556f8647eb59e5620b2") }
> db.demo348.insertOne({
  "details": { "studentDetails": { StudentName: "Mike" } }
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e553563f8647eb59e5620b3") }

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

> db.demo348.find();

আউটপুট:

{ "_id" : ObjectId("5e553556f8647eb59e5620b2"), "details" : { "studentDetails" : { "StudentName" : "Robert" } } }
{ "_id" : ObjectId("5e553563f8647eb59e5620b3"), "details" : { "studentDetails" : { "StudentName" : "Mike" } } }

৩. $unset দিয়ে নেস্টেড studentDetails অবজেক্ট মুছে ফেলা (Multi: true - সব ডকুমেন্টে)

> db.demo348.update({}, {$unset: { "details.studentDetails": "" }}, {multi: true});
WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })

ব্যাখ্যা:

  • {} - ফিল্টার: সব ডকুমেন্ট ম্যাচ।
  • {$unset: {"details.studentDetails": ""}} - ডট নোটেশন দিয়ে নেস্টেড পাথ নির্দিষ্ট করে। মান খালি স্ট্রিং বা ১ যেকোনো কিছু হতে পারে, উপেক্ষা করা হয়।
  • {multi: true} - সব ম্যাচিং ডকুমেন্ট আপডেট (পুরনো সিনট্যাক্স; আধুনিকতে updateMany)।

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

> db.demo348.find();

আউটপুট:

{ "_id" : ObjectId("5e553556f8647eb59e5620b2"), "details" : { } }
{ "_id" : ObjectId("5e553563f8647eb59e5620b3"), "details" : { } }

details অবজেক্টটি আছে, কিন্তু এর ভেতরের studentDetails ফিল্ডটি পুরোপুরি মুছে গেছে। খালি অবজেক্ট {} বাকি থাকেছে।


  1. MongoDB-এ পাইথন অবজেক্ট কীভাবে ইনসার্ট করবেন?

  2. MongoDB-এ কালেকশন ড্রপ কীভাবে করবেন?

  3. MongoDB কনসোল ক্লিয়ার করার পদ্ধতি

  4. MongoDB-তে ডেটা ইনসার্ট করার পদ্ধতি