MongoDB to pravděpodobně dělá, aby se bránil. Pokud dropDups
na špatném poli byste mohli hadici celé datové sady a uzamknout DB operacemi mazání (které jsou „tak drahé“, jak se píše).
První otázkou tedy je, proč vytváříte jedinečný index na id
pole?
MongoDB vytvoří výchozí _id
pole, které je automaticky jedinečné a indexováno. Ve výchozím nastavení MongoDB vyplní _id
s ObjectId
, můžete to však přepsat libovolnou hodnotou. Pokud tedy máte připravenou sadu hodnot ID, můžete je použít .
Pokud nemůžete znovu importovat hodnoty, zkopírujte je do nové kolekce a zároveň změňte id
do _id
. Poté můžete starou sbírku zrušit a přejmenovat novou. (všimněte si, že se objeví spousta „duplicitních klíčových chyb“, ujistěte se, že je váš kód zachytí a ignoruje )