MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

mongodb 4.0 . से डुप्लीकेट रिकॉर्ड निकालें

आप एकत्रीकरण पाइपलाइन का उपयोग करके डुप्लीकेट रिकॉर्ड को समूहीकृत कर सकते हैं:

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) में जोड़ा जा सकता है ।

एकत्रीकरण पाइपलाइन उपयोग की व्याख्या:

  1. db.theCollection.aggregate([]) एक एकत्रीकरण पाइपलाइन निष्पादित करता है, निष्पादित किए जाने वाले एकत्रीकरण चरणों की एक सूची प्राप्त करता है
  2. $group बाद के _id . के रूप में निर्दिष्ट फ़ील्ड द्वारा चरण समूह दस्तावेज़ फ़ील्ड
  3. $project चरण फ़ील्ड नाम बदलता है, नेस्टेड को समतल करता है _id $group . द्वारा निर्मित उप-दस्तावेज़
  4. $out स्टेज एकत्रीकरण परिणामी दस्तावेजों को दिए गए संग्रह में संग्रहीत करता है


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. दिनांक सीमा के आधार पर दिन/माह/सप्ताह के आधार पर समूहबद्ध करें

  2. मोंगोडब में एक संग्रह का अद्यतन स्तंभ

  3. मोंगोडब में दो तिथियों के बीच घंटे का अंतर कैसे खोजें?

  4. मैक ओएस एक्स पर मोंगोड को रोकने का एक साफ तरीका क्या है?

  5. MongoDB एग्रीगेट फ्रेमवर्क - ग्रुप बाय ईयर