$where এবং জাভাস্ক্রিপ্ট filter() ব্যবহার করে অ্যারেতে একই ভ্যালু একাধিকবার থাকা ডকুমেন্ট খুঁজুন।
নমুনা ডেটা
> db.demo188.insertOne({"ListOfData": [{"Data": 100}, {"Data": 200}, {"Data": 100}]});
> db.demo188.insertOne({"ListOfData": [{"Data": 100}, {"Data": 200}, {"Data": 300}]});
কোয়ারি (Data 100 একাধিকবার আছে)
> db.demo188.find({
$where: function() {
return this.ListOfData.filter(function(d) {return d.Data == 100;}).length > 1;
}
})
ফলাফল
{ "ListOfData": [{"Data": 100}, {"Data": 200}, {"Data": 100}] }
সতর্কতা: $where জাভাস্ক্রিপ্ট এক্সিকিউশন ব্যবহার করে, বড় ডেটাসেটে পারফরম্যান্স কম হয়। সম্ভব হলে অ্যাগ্রিগেশন ($unwind + $group) ব্যবহার করুন।