MongoDB अपने बचाव के लिए ऐसा करने की संभावना है। अगर आप dropDups गलत फ़ील्ड पर, आप पूरे डेटासेट को बंद कर सकते हैं और डीबी को डिलीट ऑपरेशंस के साथ लॉक कर सकते हैं (जो "जितना महंगा" लिखते हैं)।
तो पहला सवाल यह है कि आप id . पर एक यूनिक इंडेक्स क्यों बना रहे हैं? फ़ील्ड?
MongoDB एक डिफ़ॉल्ट _id बनाता है फ़ील्ड जो स्वचालित रूप से अद्वितीय है और अनुक्रमित। डिफ़ॉल्ट रूप से MongoDB _id . को पॉप्युलेट करता है एक ObjectId . के साथ , हालांकि, आप अपनी पसंद के किसी भी मूल्य के साथ इसे ओवरराइड कर सकते हैं। इसलिए यदि आपके पास आईडी मानों का एक तैयार सेट है, तो आप उनका उपयोग कर सकते हैं ।
यदि आप मानों को फिर से आयात नहीं कर सकते हैं, तो id . बदलते समय उन्हें एक नए संग्रह में कॉपी करें _id . में . फिर आप पुराने संग्रह को छोड़ सकते हैं और नए का नाम बदल सकते हैं। (ध्यान दें कि आपको "डुप्लिकेट कुंजी त्रुटियों" का एक गुच्छा मिलेगा, सुनिश्चित करें कि आपका कोड उन्हें पकड़ता है और उन्हें अनदेखा करता है )