Tato odpověď je zastaralá : dropDups
možnost byla v MongoDB 3.0 odstraněna, takže ve většině případů bude vyžadován jiný přístup. Můžete například použít agregaci, jak je navrženo v:MongoDB duplicitní dokumenty i po přidání jedinečného klíče.
Pokud jste si jisti, že source_references.key
identifikuje duplicitní záznamy, můžete zajistit jedinečný index pomocí dropDups:true
možnost vytvoření indexu v MongoDB 2.6 nebo starším:
db.things.ensureIndex({'source_references.key' : 1}, {unique : true, dropDups : true})
Tím zůstane první jedinečný dokument pro každý source_references.key
hodnotu a zahoďte všechny následné dokumenty, které by jinak způsobily narušení duplicitního klíče.
Důležitá poznámka :Všechny dokumenty postrádající source_references.key
pole bude považováno za pole null hodnotu, takže následující dokumenty, kterým chybí pole klíče, budou vymazány. Můžete přidat sparse:true
možnost vytvoření indexu, takže index se použije pouze na dokumenty s source_references.key
pole.
Samozřejmá opatrnost :Udělejte si zálohu databáze a zkuste to nejprve ve zkušebním prostředí, pokud máte obavy z nechtěné ztráty dat.