MongoDB-এ নির্দিষ্ট ফিল্ডের ভিত্তিতে ডুপ্লিকেট ডকুমেন্ট খুঁজতে aggregate পাইপলাইনে $group, $match, $sort ব্যবহার করা হয়।
উদাহরণ ডেটা (StudentName ফিল্ডে ডুপ্লিকেট):
> db.findDuplicateByKeyDemo.insertOne({"StudentId": 1, "StudentName": "John"});
> db.findDuplicateByKeyDemo.insertOne({"StudentId": 2, "StudentName": "Carol"});
> db.findDuplicateByKeyDemo.insertOne({"StudentId": 3, "StudentName": "Carol"});
> db.findDuplicateByKeyDemo.insertOne({"StudentId": 4, "StudentName": "John"});
> db.findDuplicateByKeyDemo.insertOne({"StudentId": 5, "StudentName": "Sam"});
> db.findDuplicateByKeyDemo.insertOne({"StudentId": 6, "StudentName": "Carol"});
ডুপ্লিকেট খুঁজার কোয়েরি:
> db.findDuplicateByKeyDemo.aggregate([
{$group: {_id: {StudentName: "$StudentName"}, UIDS: {$addToSet: "$_id"}, COUNTER: {$sum: 1}}},
{$match: {COUNTER: {$gte: 2}}},
{$sort: {COUNTER: -1}},
{$limit: 10}
]).pretty();
ফলাফল:
{
"_id": {"StudentName": "Carol"},
"UIDS": [ObjectId("..."), ObjectId("..."), ObjectId("...")],
"COUNTER": 3
}
{
"_id": {"StudentName": "John"},
"UIDS": [ObjectId("..."), ObjectId("...")],
"COUNTER": 2
}
Carol ৩ বার, John ২ বার রিপিট হয়েছে। $addToSet দিয়ে ডুপ্লিকেট ডকুমেন্টের _id গুলো সংগ্রহ করা হয়েছে।