DBAtlas · Atlas de operaciones de bases de datos

85 IndexOptionsConflict: Index already exists with different options / different name (el índice ya existe con otras opciones / otro nombre)

MongoDB

¿Qué significa?

El índice que crea entra en conflicto con uno existente: un índice con el mismo nombre tiene opciones distintas, o ya existe con otro nombre un índice equivalente con la misma clave y opciones. MongoDB no permite volver a crear el mismo índice con una definición en conflicto.

¿Por qué ocurre?

Crear un índice con el mismo nombre y clave pero opciones distintas (p. ej., expireAfterSeconds, partialFilterExpression, collation); o redefinir con otro nombre el equivalente de un índice existente ('Index already exists with a different name'). La causa típica es que las definiciones de índices se desvían con el tiempo en los scripts de aplicación/migración. El mismo nombre con una clave distinta da en su lugar 86 IndexKeySpecsConflict.

Cómo solucionarlo

Vea el índice existente: db.my_collection.getIndexes(). Si realmente quiere cambiar las opciones, elimine el índice antiguo y cree el nuevo: db.my_collection.dropIndex('index_name') y luego createIndex(...). En caso contrario, haga que la definición coincida exactamente con el índice existente o dé al nuevo índice otro nombre. Haga idempotentes los scripts de migración.

Abrir en DBAtlas →

Más entradas de este motor