MongoDB-এ অ্যারে থেকে নির্দিষ্ট মান রিমুভ করতে $pull অপারেটর ব্যবহার করা হয়। এটি অ্যারেতে মেলে যাওয়া সব মিলে যাওয়া এলিমেন্ট রিমুভ করে।
কলেকশন এবং ডকুমেন্ট তৈরি
> db.demo224.insertOne({"ListOfTechnology":["Spring","Hibernate","Java"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3ee6d103d395bdc2134733") }
> db.demo224.insertOne({"ListOfTechnology":["Groovy"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3ee6ec03d395bdc2134734") }
সব ডকুমেন্ট দেখানো
> db.demo224.find();
আউটপুট:
{ "_id" : ObjectId("5e3ee6d103d395bdc2134733"), "ListOfTechnology" : [ "Spring", "Hibernate", "Java" ] }
{ "_id" : ObjectId("5e3ee6ec03d395bdc2134734"), "ListOfTechnology" : [ "Groovy" ] }
অ্যারে থেকে আইটেম রিমুভ করার কোয়ারী
নির্দিষ্ট _id দিয়ে ডকুমেন্ট টার্গেট করে ListOfTechnology অ্যারেতে "Java" রিমুভ করা হয়েছে:
> db.demo224.update({_id:ObjectId("5e3ee6d103d395bdc2134733")}, {$pull: {"ListOfTechnology": "Java"}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
রিমুভের পর ডকুমেন্ট দেখানো
> db.demo224.find();
আউটপুট (Java রিমুভ হয়েছে):
{ "_id" : ObjectId("5e3ee6d103d395bdc2134733"), "ListOfTechnology" : [ "Spring", "Hibernate" ] }
{ "_id" : ObjectId("5e3ee6ec03d395bdc2134734"), "ListOfTechnology" : [ "Groovy" ] }
গুরুত্বপূর্ণ পয়েন্টসমূহ:
$pull- শর্ত মেলে সব এলিমেন্ট রিমুভ করে (যদি ডুপ্লিকেট থাকে)$pullAll- একাধিক নির্দিষ্ট মান রিমুভ করতে:{$pullAll: {ListOfTechnology: ["Java", "Spring"]}}$pullwith condition - অবজেক্ট অ্যারেতে:{$pull: {Details: {Score: {$lt: 50}}}}
আধুনিক পদ্ধতি (MongoDB 3.2+):
db.demo224.updateOne({_id: ...}, {$pull: {"ListOfTechnology": "Java"}})- একটি ডকুমেন্টdb.demo224.updateMany({}, {$pull: {"ListOfTechnology": "Java"}})- সব ডকুমেন্ট থেকে
পজিশনাল রিমুভ (শুধু প্রথম মিল): MongoDB-এ সরাসরি পজিশনাল রিমুভ নেই। workaround: $unset দিয়ে null করুন তারপর $pull: {array: null}।
সতর্কতা: $pull অ্যারে রি-ইন্ডেক্স করে (gap থাকবে না)।