आप एकत्रीकरण पाइपलाइन का उपयोग करके डुप्लीकेट रिकॉर्ड को समूहीकृत कर सकते हैं:
db.theCollection.aggregate([
{$group: {_id: {item: "$item", qty: "$qty", size: "$size", status: "$status"}}},
{$project: {_id: 0, item: "$_id.item", qty: "$_id.qty", size: "$_id.size", status: "$_id.status"}},
{$out: "theCollectionWithoutDuplicates"}
])
एकत्रीकरण पाइपलाइन के निष्पादन के बाद, theCollectionWithoutDuplicates
संग्रह में मूल डुप्लीकेट दस्तावेज़ों के प्रत्येक समूह के लिए एक नया _id
. के साथ एक दस्तावेज़ होता है - आप मूल संग्रह को हटाकर आउटपुट को सत्यापित कर सकते हैं (db.theCollection.drop()
) और नए संग्रह का नाम बदलें (db.theCollectionWithoutDuplicates.renameCollection('theCollection')
) ड्रॉप और नाम बदलें को db.theCollectionWithoutDuplicates.renameCollection('theCollection', true)
में जोड़ा जा सकता है ।
एकत्रीकरण पाइपलाइन उपयोग की व्याख्या:
db.theCollection.aggregate([])
एक एकत्रीकरण पाइपलाइन निष्पादित करता है, निष्पादित किए जाने वाले एकत्रीकरण चरणों की एक सूची प्राप्त करता है$group
बाद के_id
. के रूप में निर्दिष्ट फ़ील्ड द्वारा चरण समूह दस्तावेज़ फ़ील्ड$project
चरण फ़ील्ड नाम बदलता है, नेस्टेड को समतल करता है_id
$group
. द्वारा निर्मित उप-दस्तावेज़- द
$out
स्टेज एकत्रीकरण परिणामी दस्तावेजों को दिए गए संग्रह में संग्रहीत करता है