DBAtlas · Atlas de operações de banco de dados

85 IndexOptionsConflict: Index already exists with different options / different name (o índice já existe com outras opções / outro nome)

MongoDB

O que significa?

O índice que você está criando entra em conflito com um existente: um índice com o mesmo nome tem opções diferentes, ou um índice equivalente com a mesma chave e as mesmas opções já existe com outro nome. O MongoDB não permite recriar o mesmo índice com uma definição conflitante.

Por que acontece?

Criar um índice com o mesmo nome e a mesma chave, mas com opções diferentes (por exemplo, expireAfterSeconds, partialFilterExpression, collation); ou redefinir o equivalente de um índice existente com um nome diferente ('Index already exists with a different name'). A causa típica são definições de índice que divergem com o tempo em scripts da aplicação/de migração. O mesmo nome com uma chave diferente gera, em vez disso, 86 IndexKeySpecsConflict.

Como resolver

Veja o índice existente: db.my_collection.getIndexes(). Se realmente quiser alterar as opções, remova o índice antigo e crie o novo: db.my_collection.dropIndex('index_name') e depois createIndex(...). Caso contrário, faça a definição corresponder exatamente ao índice existente ou dê outro nome ao novo índice. Torne os scripts de migração idempotentes.

Abrir no DBAtlas →

Mais entradas deste banco