Dette svar er forældet : dropDups
indstilling blev fjernet i MongoDB 3.0, så en anden tilgang vil være påkrævet i de fleste tilfælde. For eksempel kan du bruge aggregering som foreslået på:MongoDB duplikatdokumenter, selv efter tilføjelse af en unik nøgle.
Hvis du er sikker på, at source_references.key
identificerer duplikerede poster, kan du sikre et unikt indeks med dropDups:true
mulighed for oprettelse af indeks i MongoDB 2.6 eller ældre:
db.things.ensureIndex({'source_references.key' : 1}, {unique : true, dropDups : true})
Dette vil beholde det første unikke dokument for hver source_references.key
værdi, og slip eventuelle efterfølgende dokumenter, der ellers ville forårsage en duplikatnøgleovertrædelse.
Vigtig bemærkning :Alle dokumenter, der mangler source_references.key
felt vil blive betragtet som havende et null værdi, så efterfølgende dokumenter, der mangler nøglefeltet, slettes. Du kan tilføje sparse:true
mulighed for oprettelse af indeks, så indekset kun gælder for dokumenter med en source_references.key
felt.
Åbenlys forsigtighed :Tag en sikkerhedskopi af din database, og prøv dette i et iscenesættelsesmiljø først, hvis du er bekymret for utilsigtet tab af data.