आप आसानी से इस आधार पर डुप्लीकेट पहचान कर सकते हैं निम्नलिखित एकत्रीकरण पाइपलाइन ऑपरेशन चला रहा है:
db.collection.aggregate([
{
"$group": {
"_id": { "foreing": "$foreing", "value": "$value" },
"uniqueIds": { "$addToSet": "$_id" },
"count": { "$sum": 1 }
}
},
{ "$match": { "count": { "$gt": 1 } } }
])
पहले चरण में $group
ऑपरेटर foreign
और value
कुंजी मान द्वारा दस्तावेजों समूह के लिए प्रयोग किया जाता है और उसके बाद का उपयोग कर uniqueIds
क्षेत्र के रूप में वर्गीकृत दस्तावेजों से प्रत्येक के लिए _id
मूल्यों की एक सरणी बनाने $addToSet
ऑपरेटर। यह आपको प्रत्येक समूह के लिए अद्वितीय अभिव्यक्ति मानों की एक सरणी देता है। $sum
ऑपरेटर के साथ बाद के पाइपलाइन चरणों में उपयोग करने के लिए समूहित दस्तावेज़ों की कुल संख्या प्राप्त करें।
दूसरी पाइपलाइन चरण में, 1. की गिनती फ़िल्टर्ड बाहर दस्तावेजों अद्वितीय सूचकांक कुंजी का प्रतिनिधित्व के साथ सभी दस्तावेजों को फ़िल्टर करने के $match
ऑपरेटर का उपयोग करें।
शेष दस्तावेज संग्रह में होंगे जिनके पास जोड़ी foreing
& value
के लिए डुप्लिकेट कुंजी मान होंगे।