Създаването на индекси в MongoDB е идемпотентна операция. Така че стартирайте db.names.createIndex({name:1})
ще създаде индекса само ако той вече не съществува.
Оттегленият (от MongoDB 3.0) псевдоним за createIndex() е ensureIndex() което е малко по-ясно какво createIndex()
всъщност го прави.
Редактиране: Благодаря на ZitRo за разяснението в коментарите, че извикването на createIndex()
със същото име, но различни опции от съществуващ индекс, ще изведе грешка MongoError: Index with name: **indexName** already exists with different options
както е обяснено в този въпрос.
Ако имате други причини за проверка, тогава можете да получите достъп до текущите индексни данни по един от двата начина:
- От v3.0 можем да използваме
db.names.getIndexes()
къдетоnames
е името на колекцията. Документи тук. - Преди версия 3.0 можете да получите достъп до
system.indexes
колекция и направетеfind
както bri описва по-долу.