Esta resposta está obsoleta : o
dropDups
A opção foi removida no MongoDB 3.0, portanto, uma abordagem diferente será necessária na maioria dos casos. Por exemplo, você pode usar a agregação conforme sugerido em:Documentos duplicados do MongoDB mesmo depois de adicionar uma chave exclusiva. Se você tiver certeza de que o
source_references.key
identifica registros duplicados, você pode garantir um índice exclusivo com o dropDups:true
opção de criação de índice no MongoDB 2.6 ou anterior:db.things.ensureIndex({'source_references.key' : 1}, {unique : true, dropDups : true})
Isso manterá o primeiro documento exclusivo para cada
source_references.key
valor e elimine quaisquer documentos subsequentes que, de outra forma, causariam uma violação de chave duplicada. Observação importante :Quaisquer documentos sem o
source_references.key
campo será considerado como null valor, de modo que os documentos subsequentes que não contenham o campo-chave serão excluídos. Você pode adicionar o sparse:true
opção de criação de índice para que o índice se aplique apenas a documentos com um source_references.key
campo. Cuidado óbvio :Faça um backup do seu banco de dados e tente primeiro em um ambiente de teste se estiver preocupado com a perda de dados não intencional.