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

MongoDB-এ $pull ব্যবহার করে ডকুমেন্ট থেকে নির্দিষ্ট মান মুছে ফেলা


MongoDB-এ অ্যারে থেকে নির্দিষ্ট এলিমেন্ট সরিয়ে ফেলার জন্য $pull অপারেটর

MongoDB-এ একটি অ্যারে ফিল্ড থেকে নির্দিষ্ট মানযুক্ত এলিমেন্ট মুছে ফেলার জন্য $pull অপারেটর update() এর সাথে ব্যবহার করা হয়। এটি অ্যারে-র সব ম্যাচিং এলিমেন্ট মুছে ফেলে।

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

> db.demo318.insertOne({Subject:["MySQL","MongoDB","Java"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50ea6df8647eb59e562062") }
> db.demo318.insertOne({Subject:["Spring","Hibernate"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50ea78f8647eb59e562063") }

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

> db.demo318.find();

আউটপুট:

{ "_id" : ObjectId("5e50ea6df8647eb59e562062"), "Subject" : [ "MySQL", "MongoDB", "Java" ] }
{ "_id" : ObjectId("5e50ea78f8647eb59e562063"), "Subject" : [ "Spring", "Hibernate" ] }

৩. $pull ব্যবহার করে "Hibernate" মুছে ফেলা

> db.demo318.update({Subject:"Hibernate"},{$pull:{"Subject":"Hibernate"}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

ব্যাখ্যা:

  • {Subject:"Hibernate"} - যেই ডকুমেন্টে "Hibernate" আছে সেটি খুঁজে বের করে।
  • {$pull:{"Subject":"Hibernate"}} - Subject অ্যারে- থেকে "Hibernate" মানযুক্ত এলিমেন্টটি সরিয়ে ফেলে।

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

> db.demo318.find();

আউটপুট:

{ "_id" : ObjectId("5e50ea6df8647eb59e562062"), "Subject" : [ "MySQL", "MongoDB", "Java" ] }
{ "_id" : ObjectId("5e50ea78f8647eb59e562063"), "Subject" : [ "Spring" ] }

দ্বিতীয় ডকুমেন্ট থেকে "Hibernate" মুছে গেছে, শুধু "Spring" বাকি থাকেছে। প্রথম ডকুমেন্ট অপরিবর্তিত রয়েছে কারণ সেখানে "Hibernate" ছিলো না।


  1. MongoDB কোয়ারী: আইডি যদি ডকুমেন্ট ফিল্ড অ্যারে মানের সমান হয় তবে বাদ দেওয়া

  2. MongoDB Aggregation-এ নির্দিষ্ট ফিল্ড মান মэтচ করা ($match স্টেজ)

  3. MongoDB-এ ডকুমেন্ট থেকে নির্দিষ্ট ভ্যালু ফিল্টার করা ($filter)

  4. MongoDB-এ অ্যারে কোয়েরি করে নির্দিষ্ট ভ্যালু ফেচ করা