MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Vérifier si un index existe dans mongodb

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 :

  1. Depuis la v3.0, nous pouvons utiliser db.names.getIndexes()names est le nom de la collection. Documents ici.
  2. Avant la v3.0, vous pouvez accéder au system.indexes collection et faites une find comme bri le décrit ci-dessous.