MongoDB gør sandsynligvis dette for at forsvare sig selv. Hvis du dropDups
på det forkerte felt kunne du spole hele datasættet og låse DB'en ned med sletteoperationer (som er "så dyre" som man skriver).
Så det første spørgsmål er, hvorfor opretter du et unikt indeks på id
felt?
MongoDB opretter en standard _id
felt, der automatisk er unikt og indekseret. Som standard udfylder MongoDB _id
med et ObjectId
, dog kan du tilsidesætte dette med den værdi, du kan lide. Så hvis du har et klar sæt id-værdier, kan du bruge dem .
Hvis du ikke kan genimportere værdierne, så kopier dem til en ny samling, mens du ændrer id
ind i _id
. Du kan derefter droppe den gamle samling og omdøbe den nye. (bemærk, at du vil få en masse "duplikatnøglefejl", sørg for at din kode fanger og ignorerer dem )