85 IndexOptionsConflict: Index already exists with different options / different name (un index existe déjà avec d'autres options / un autre nom)
MongoDBQue 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.
Autres entrées pour ce moteur
- 20 IllegalOperationIllegal operation
- 48 NamespaceExistsNamespace (collection) already exists (le namespace/la collection existe déjà)
- 11601 InterruptedOperation was interrupted
- 67 CannotCreateIndexCannot create index
- 27 IndexNotFoundIndex not found
- 79 UnknownReplWriteConcernUnknown replica set write concern
- 10107 NotWritablePrimarynot master / not writable primary