DBAtlas · Atlas d'exploitation des bases de données

85 IndexOptionsConflict: Index already exists with different options / different name (un index existe déjà avec d'autres options / un autre nom)

MongoDB

Que signifie cette erreur ?

L'index que vous créez entre en conflit avec un index existant : un index du même nom a des options différentes, ou un index équivalent avec la même clé et les mêmes options existe déjà sous un autre nom. MongoDB ne permet pas de recréer le même index avec une définition conflictuelle.

Cause

Création d'un index avec le même nom et la même clé mais des options différentes (par ex. expireAfterSeconds, partialFilterExpression, collation) ; ou redéfinition de l'équivalent d'un index existant sous un autre nom ('Index already exists with a different name'). La dérive des définitions d'index au fil du temps dans les scripts applicatifs/de migration est la cause typique. Un même nom avec une clé différente donne plutôt 86 IndexKeySpecsConflict.

Comment la corriger

Consultez l'index existant : db.my_collection.getIndexes(). Si vous voulez vraiment changer les options, supprimez l'ancien index et créez le nouveau : db.my_collection.dropIndex('index_name') puis createIndex(...). Sinon, alignez exactement la définition sur l'index existant ou donnez un autre nom au nouvel index. Rendez les scripts de migration idempotents.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur