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" ছিলো না।