यह उत्तर अप्रचलित है : dropDups
मोंगोडीबी 3.0 में विकल्प हटा दिया गया था, इसलिए ज्यादातर मामलों में एक अलग दृष्टिकोण की आवश्यकता होगी। उदाहरण के लिए, आप इस पर सुझाव के अनुसार एकत्रीकरण का उपयोग कर सकते हैं:अद्वितीय कुंजी जोड़ने के बाद भी MongoDB डुप्लिकेट दस्तावेज़।
यदि आप सुनिश्चित हैं कि source_references.key
डुप्लिकेट रिकॉर्ड की पहचान करता है, आप dropDups:true
. के साथ एक अद्वितीय अनुक्रमणिका सुनिश्चित कर सकते हैं MongoDB 2.6 या पुराने में अनुक्रमणिका निर्माण विकल्प:
db.things.ensureIndex({'source_references.key' : 1}, {unique : true, dropDups : true})
यह प्रत्येक source_references.key
. के लिए पहला अद्वितीय दस्तावेज़ रखेगा मूल्य, और किसी भी बाद के दस्तावेज़ों को छोड़ दें जो अन्यथा डुप्लिकेट कुंजी उल्लंघन का कारण बनेंगे।
महत्वपूर्ण नोट :कोई भी दस्तावेज़ जिसमें source_references.key
. मौजूद नहीं है फ़ील्ड को शून्य . के रूप में माना जाएगा मान, इसलिए बाद के दस्तावेज़ जिनमें कुंजी फ़ील्ड नहीं है, हटा दिए जाएंगे। आप sparse:true
जोड़ सकते हैं अनुक्रमणिका निर्माण विकल्प इसलिए अनुक्रमणिका केवल source_references.key
. वाले दस्तावेज़ों पर लागू होती है फ़ील्ड.
स्पष्ट सावधानी :अपने डेटाबेस का बैकअप लें, और यदि आप अनपेक्षित डेटा हानि के बारे में चिंतित हैं, तो पहले इसे स्टेजिंग वातावरण में आज़माएं।