MongoDB-তে নেস্টেড অ্যারে বা চাইল্ড কালেকশন থেকে নির্দিষ্ট সাব-ডকুমেন্ট মুছে ফেলতে $pull অপারেটর ব্যবহার করা হয়। এটি শর্ত পূরণকারী সব এলিমেন্ট অ্যারे থেকে রিমুভ করে।
উদাহরণ: নেস্টেড স্ট্রাকচার সহ ডকুমেন্ট
> db.demo715.insertOne({
_id: 1,
details: [
{ 'id': '101',
'Information': [
{ 'studentid': '102', "Name": "Bob" },
{ 'studentid': '103', "Name": "Chris" }
]
}
]
});
মুছে ফেলার আগে
> db.demo715.find();
আউটপুট: Information অ্যারেতে দুইটি সাব-ডকুমেন্ট (Bob এবং Chris)।
studentid 102 (Bob) মুছে ফেলা
> db.demo715.update(
{ "details.id": '101' },
{ $pull: { 'details.$.Information': { studentid: '102', "Name": "Bob" } } }
);
রেজাল্ট: WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
মুছে ফেলার পর
> db.demo715.find();
আউটপুট: Information অ্যারেতে শুধু Chris রয়েছে।
মূল পয়েন্ট:
details.$.Information- পজিশনাল$কোয়েরিতে ম্যাচ করাdetailsএলিমেন্টকে নির্দেশ করে$pull- শর্ত মিলে যাওয়া সব এলিমেন্ট মুছে ফেলে (একাধিক হলে সব)- শর্তে একাধিক ফিল্ড দিয়ে স্পেসিফিক এলিমেন্ট টার্গেট করা যায়