MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Verifica se esiste un indice in mongodb

La creazione di indici in MongoDB è un'operazione idempotente. Quindi eseguendo db.names.createIndex({name:1}) creerebbe l'indice solo se non esistesse già.

L'alias deprecato (a partire da MongoDB 3.0) per createIndex() è ensureIndex() che è un po' più chiaro su cosa createIndex() effettivamente lo fa.

Modifica: Grazie a ZitRo per aver chiarito nei commenti che chiamando createIndex() con lo stesso nome ma opzioni diverse rispetto a un indice esistente genererà un errore MongoError: Index with name: **indexName** already exists with different options come spiegato in questa domanda.

Se hai altri motivi per controllare, puoi accedere ai dati dell'indice corrente in due modi:

  1. A partire dalla v3.0, possiamo utilizzare db.names.getIndexes() dove names è il nome della collezione. Documenti qui.
  2. Prima della v3.0, puoi accedere a system.indexes raccolta e fai un find come bri descrive di seguito.