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 )