MongoDB-এ নির্দিষ্ট সংখ্যক ডকুমেন্ট বাদ দিয়ে বাকিগুলো ডিলিট করতে skip(), toArray(), map() এবং remove() ব্যবহার করা হয়।
নমুনা ডেটা তৈরি করা
deleteDemo কালেকশনে ১০টি ডকুমেন্ট ইনসার্ট করি।
> db.deleteDemo.insertOne({"Name":"John"}); // 1
> db.deleteDemo.insertOne({"Name":"Carol"}); // 2
> db.deleteDemo.insertOne({"Name":"Sam"}); // 3
> db.deleteDemo.insertOne({"Name":"David"}); // 4
> db.deleteDemo.insertOne({"Name":"Robert"}); // 5
> db.deleteDemo.insertOne({"Name":"Chris"}); // 6
> db.deleteDemo.insertOne({"Name":"Mike"}); // 7
> db.deleteDemo.insertOne({"Name":"Bob"}); // 8
> db.deleteDemo.insertOne({"Name":"James"}); // 9
> db.deleteDemo.insertOne({"Name":"Jace"}); // 10
সকল ডকুমেন্ট দেখানো
> db.deleteDemo.find();
আউটপুট: ১০টি ডকুমেন্ট দেখাবে।
৫ই নম্বর এর পরের সব ডকুমেন্ট ডিলিট করা
skip(5) দিয়ে প্রথম ৫টি বাদ দিয়ে বাকি مواردের _id সংগ্রহ করে ডিলিট করি:
> var value = db.deleteDemo.find({}, {_id : 1}).skip(5).toArray().map(function(documentValue) {
return documentValue._id;
});
> db.deleteDemo.remove({_id: {$in:value}});
WriteResult({ "nRemoved" : 5 })
ফলাফল দেখানো
> db.deleteDemo.find();
আউটপুট:
{ "_id" : ObjectId("5cd550492cba06f46efe9f06"), "Name" : "John" }
{ "_id" : ObjectId("5cd5504d2cba06f46efe9f07"), "Name" : "Carol" }
{ "_id" : ObjectId("5cd550512cba06f46efe9f08"), "Name" : "Sam" }
{ "_id" : ObjectId("5cd5505d2cba06f46efe9f09"), "Name" : "David" }
{ "_id" : ObjectId("5cd550682cba06f46efe9f0a"), "Name" : "Robert" }
সতর্কতা: remove() ডিপ্রিকেটেড। আধুনিক ভার্সনে deleteMany({_id: {$in: value}}) ব্যবহার করুন। এটি প্রথম ৫টি রেখে বাকি ৫টি ডিলিট করেছে।