MongoDB prawdopodobnie robi to, aby się bronić. Jeśli dropDups w niewłaściwym polu możesz uruchomić cały zestaw danych i zablokować bazę danych za pomocą operacji usuwania (które są "tak drogie" jak zapisy).
Więc pierwsze pytanie brzmi:dlaczego tworzysz unikalny indeks na id pole?
MongoDB tworzy domyślny _id pole, które jest automatycznie unikatowe i indeksowane. Domyślnie MongoDB wypełnia _id z ObjectId , jednak możesz to zmienić dowolną wartością. Jeśli masz gotowy zestaw wartości identyfikatorów, możesz ich użyć .
Jeśli nie możesz ponownie zaimportować wartości, skopiuj je do nowej kolekcji podczas zmiany id w _id . Następnie możesz usunąć starą kolekcję i zmienić nazwę nowej. (pamiętaj, że otrzymasz kilka „błędów zduplikowanych kluczy”, upewnij się, że Twój kod je przechwytuje i ignoruje )