Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB 3.x में डुप्लिकेट रिकॉर्ड हटाना

MongoDB एग्रीगेशन में $group और $addToSet का उपयोग करके डुप्लिकेट पहचानना

MongoDB 3.x में डुप्लिकेट रिकॉर्ड खोजने के लिए एग्रीगेशन पाइपलाइन में $group का उपयोग करके समान फील्ड मान वाले दस्तावेज़ों के _id एकत्रित करें।

उदाहरण: संग्रह और दस्तावेज़ बनाना

> db.demo438.insertOne({"FirstName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e775c37bbc41e36cc3caea1") }
> db.demo438.insertOne({"FirstName":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e775c3dbbc41e36cc3caea2") }
> db.demo438.insertOne({"FirstName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e775c40bbc41e36cc3caea3") }
> db.demo438.insertOne({"FirstName":"Bob"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e775c44bbc41e36cc3caea4") }
> db.demo438.insertOne({"FirstName":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e775c47bbc41e36cc3caea5") }

सभी दस्तावेज़ देखना

> db.demo438.find();

आउटपुट:

{ "_id" : ObjectId("5e775c37bbc41e36cc3caea1"), "FirstName" : "Chris" }
{ "_id" : ObjectId("5e775c3dbbc41e36cc3caea2"), "FirstName" : "David" }
{ "_id" : ObjectId("5e775c40bbc41e36cc3caea3"), "FirstName" : "Chris" }
{ "_id" : ObjectId("5e775c44bbc41e36cc3caea4"), "FirstName" : "Bob" }
{ "_id" : ObjectId("5e775c47bbc41e36cc3caea5"), "FirstName" : "David" }

डुप्लिकेट पहचानने के लिए एग्रीगेशन

> db.demo438.aggregate([ 
  { "$group":{ 
    _id:{FirstName:"$FirstName"}, 
    DuplicateValueIds:{$addToSet:"$_id"} 
  } } 
]);

आउटपुट:

{ "_id" : { "FirstName" : "David" }, "DuplicateValueIds" : [ ObjectId("5e775c47bbc41e36cc3caea5"), ObjectId("5e775c3dbbc41e36cc3caea2") ] }
{ "_id" : { "FirstName" : "Bob" }, "DuplicateValueIds" : [ ObjectId("5e775c44bbc41e36cc3caea4") ] }
{ "_id" : { "FirstName" : "Chris" }, "DuplicateValueIds" : [ ObjectId("5e775c40bbc41e36cc3caea3"), ObjectId("5e775c37bbc41e36cc3caea1") ] }

व्याख्या:

  • _id: {FirstName: "$FirstName"} - FirstName द्वारा ग्रुप
  • $addToSet: "$_id" - प्रत्येक ग्रुप के _id का सेट बनाता है
  • सेट आकार > 1 वाले डुप्लिकेट हैं

डुप्लिकेट हटाने के लिए (पहला रखें):

// 1. डुप्लिकेट _id प्राप्त करें
var duplicates = db.demo438.aggregate([
  {$group: {_id: {FirstName: "$FirstName"}, ids: {$addToSet: "$_id"}, count: {$sum: 1}}},
  {$match: {count: {$gt: 1}}}
]).toArray();

// 2. प्रत्येक ग्रुप से पहला छोड़कर बाकी हटाएं
duplicates.forEach(function(doc) {
  doc.ids.shift(); // पहला रखें
  db.demo438.deleteMany({_id: {$in: doc.ids}});
});

आधुनिक विकल्प (MongoDB 4.2+):

// अद्वितीय इंडेक्स बनाएं (डुप्लिकेट इन्सर्ट रोकेगा)
db.demo438.createIndex({FirstName: 1}, {unique: true, dropDups: true})
// dropDups: true केवल पुराने संस्करणों में काम करता है

सर्वोत्तम अभ्यास: अद्वितीय इंडेक्स बनाकर डुप्लिकेट रोकें, मौजूदा डुप्लिकेट साफ़ करने के लिए एग्रीगेशन उपयोग करें।

  1. iTunes से डुप्लीकेट गाने हटाने की त्वरित गाइड iTunes से डुप्लीकेट गाने हटाने की त्वरित गाइड

    iTunes एक दिलचस्प और मज़ेदार म्यूज़िक मैनेजर है। हालांकि, समय के साथ इसमें विभिन्न जटिल संभावित समस्याएं भी आती हैं। डुप्लीकेट म्यूज़िक फाइलें और अन्य ऑडियो iTunes के उपयोग में पाई जाने वाली आम समस्याएं हैं। डुप्लीकेट संगीत और अन्य ऑडियो फाइलें परेशान करने वाली और निराशाजनक हो सकती हैं। यह हमारे Mac

  1. गूगल ड्राइव में डुप्लीकेट फ़ाइलों को कुशलतापूर्वक पहचानें और हटाएं गूगल ड्राइव में डुप्लीकेट फ़ाइलों को कुशलतापूर्वक पहचानें और हटाएं

    यदि आप गूगल ड्राइव या वन ड्राइव जैसी क्लाउड स्टोरेज सेवाओं के नियमित उपयोगकर्ता हैं तो डुप्लीकेट फ़ाइलें एक खतरा पैदा कर सकती हैं। गूगल ड्राइव आपको अपने फोन, टैबलेट, या कंप्यूटर जैसे किसी भी डिवाइस से फ़ाइलों को सहेजने, अपलोड करने, एक्सेस करने, या संशोधित करने की अनुमति देता है। यह सीमित स्थान प्रदा

  1. एक्सेल में डुप्लिकेट पंक्तियों को कुशलतापूर्वक पहचानें और हटाएं एक्सेल में डुप्लिकेट पंक्तियों को कुशलतापूर्वक पहचानें और हटाएं

    एक्सेल का एक बहुत ही सामान्य उपयोग है: इसका उपयोग डेटा को साफ करने के लिए एक उपकरण के रूप में किया जाता है। डेटा साफ करने का अर्थ है: कच्चे डेटा को वर्कशीट में प्राप्त करना डेटा को मैनिपुलेट करना ताकि यह विभिन्न आवश्यकताओं के अनुरूप हो संक्षेप में, डेटा को साफ किया जाता है ताकि इसका ठीक से विश्लेषण