MongoDB вероятно прави това, за да се защити. Ако dropDups
в грешното поле можете да изпълните целия набор от данни и да заключите DB с операции за изтриване (които са „толкова скъпи“, колкото записите).
Така че първият въпрос е защо създавате уникален индекс на id
поле?
MongoDB създава _id
по подразбиране поле, което автоматично е уникално и индексиран. По подразбиране MongoDB попълва _id
с ObjectId
, но можете да замените това с каквато стойност желаете. Така че, ако имате готов набор от ID стойности, можете да ги използвате .
Ако не можете да импортирате повторно стойностите, тогава ги копирайте в нова колекция, докато променяте id
в _id
. След това можете да премахнете старата колекция и да преименувате новата. (обърнете внимание, че ще получите куп „дублирани ключови грешки“, уверете се, че вашият код ги улавя и игнорира )