Att skapa index i MongoDB är en idempotent operation. Så kör db.names.createIndex({name:1})
skulle skapa indexet bara om det inte redan fanns.
Det utfasade (från MongoDB 3.0) alias för createIndex() är ensureIndex() vilket är lite tydligare på vad createIndex()
faktiskt gör det.
Redigera: Tack till ZitRo för att du i kommentarerna klargjorde att anropet createIndex()
med samma namn men andra alternativ än ett befintligt index kommer att ge ett felmeddelande MongoError: Index with name: **indexName** already exists with different options
som förklaras i denna fråga.
Om du har andra skäl att kontrollera kan du komma åt aktuella indexdata på ett av två sätt:
- Från och med v3.0 kan vi använda
db.names.getIndexes()
därnames
är namnet på samlingen. Dokument här. - Före v3.0 kan du komma åt
system.indexes
samla in och gör enfind
som bri beskriver nedan.