sql >> Base de Datos >  >> NoSQL >> MongoDB

Comprobando si existe un índice en mongodb

La creación de índices en MongoDB es una operación idempotente. Así que ejecuta db.names.createIndex({name:1}) crearía el índice solo si aún no existiera.

El alias en desuso (a partir de MongoDB 3.0) para createIndex() es ensureIndex() que es un poco más claro sobre qué createIndex() realmente lo hace.

Editar: Gracias a ZitRo por aclarar en los comentarios que llamar a createIndex() con el mismo nombre pero diferentes opciones que un índice existente arrojará un error MongoError: Index with name: **indexName** already exists with different options como se explica en esta pregunta.

Si tiene otras razones para verificar, puede acceder a los datos del índice actual de dos maneras:

  1. A partir de v3.0, podemos usar db.names.getIndexes() donde names es el nombre de la colección. Documentos aquí.
  2. Antes de v3.0, puede acceder a system.indexes colección y haz un find como bri describe a continuación.