La création d'index dans MongoDB est une opération idempotente. Exécutez donc db.names.createIndex({name:1})
créerait l'index uniquement s'il n'existait pas déjà.
L'alias obsolète (à partir de MongoDB 3.0) pour createIndex() est assureIndex() ce qui est un peu plus clair sur ce que createIndex()
fait réellement.
Modifier : Merci à ZitRo d'avoir précisé dans les commentaires que l'appel de createIndex()
avec le même nom mais des options différentes d'un index existant générera une erreur MongoError: Index with name: **indexName** already exists with different options
comme expliqué dans cette question.
Si vous avez d'autres raisons de vérifier, vous pouvez accéder aux données d'index actuelles de deux manières :
- Depuis la v3.0, nous pouvons utiliser
db.names.getIndexes()
oùnames
est le nom de la collection. Documents ici. - Avant la v3.0, vous pouvez accéder au
system.indexes
collection et faites unefind
comme bri le décrit ci-dessous.