MongoDB gör sannolikt detta för att försvara sig. Om du dropDups
på fel fält kan du spola hela datamängden och låsa DB:n med raderingsoperationer (som är "lika dyra" som man skriver).
Så den första frågan är varför du skapar ett unikt index på id
fältet?
MongoDB skapar en standard _id
fält som automatiskt är unikt och indexeras. Som standard fyller MongoDB i _id
med ett ObjectId
, dock kan du åsidosätta detta med vilket värde du vill. Så om du har en färdig uppsättning ID-värden kan du använda dem .
Om du inte kan återimportera värdena, kopiera dem till en ny samling samtidigt som du ändrar id
till _id
. Du kan sedan släppa den gamla samlingen och byta namn på den nya. (observera att du kommer att få ett gäng "duplicerade nyckelfel", se till att din kod fångar och ignorerar dem )