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:
- A partire dalla v3.0, possiamo utilizzare
db.names.getIndexes()dovenamesè il nome della collezione. Documenti qui. - Prima della v3.0, puoi accedere a
system.indexesraccolta e fai unfindcome bri descrive di seguito.