MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como posso excluir duplicatas no MongoDb?


O MongoDB provavelmente está fazendo isso para se defender. Se você dropDups no campo errado, você pode usar todo o conjunto de dados e bloquear o banco de dados com operações de exclusão (que são "tão caras" quanto as gravações).

Então, a primeira pergunta é por que você está criando um índice exclusivo no id campo?

MongoDB cria um padrão _id campo que é automaticamente exclusivo e indexado. Por padrão, o MongoDB preenche o _id com um ObjectId , no entanto, você pode substituir isso por qualquer valor que desejar. Então, se você tiver um conjunto pronto de valores de ID, poderá usá-los .

Se você não puder reimportar os valores, copie-os para uma nova coleção enquanto altera id em _id . Você pode então descartar a coleção antiga e renomear a nova. (observe que você receberá vários "erros de chave duplicada", certifique-se de que seu código os detecte e os ignore )