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 )