MongoDB में किसी की फील्ड के आधार पर डुप्लीकेट डॉक्यूमेंट खोजने के लिए एग्रीगेशन फ्रेमवर्क का उपयोग करें।
उदाहरण से समझें
एक कलेक्शन बनाकर डॉक्यूमेंट इन्सर्ट करते हैं (कुछ डुप्लीकेट नाम के साथ):
> 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.find().pretty();
आउटपुट:
डुप्लीकेट खोजने के लिए एग्रीगेशन पाइपलाइन:
> db.findDuplicateByKeyDemo.aggregate([ {$group: { _id: {StudentName: "$StudentName"}, UIDS: {$addToSet: "$_id"}, COUNTER: {$sum: 1} }}, {$match: {COUNTER: {$gte: 2}}}, {$sort: {COUNTER: -1}}, {$limit: 10} ]).pretty();आउटपुट:
पाइपलाइन:
$groupसे ग्रुप बनाकर काउंट करें,$matchसे काउंट ≥ 2 फिल्टर करें,$sortसे घटते क्रम में,$limitसे टॉप 10।