Tworzenie indeksów w MongoDB jest operacją idempotentną. Uruchamianie db.names.createIndex({name:1})
utworzy indeks tylko wtedy, gdy jeszcze nie istnieje.
Przestarzały (od MongoDB 3.0) alias dla createIndex() to upewnij się, że indeks() co jest nieco jaśniejsze na temat tego, co createIndex()
faktycznie.
Edytuj: Dziękujemy ZitRo za wyjaśnienie w komentarzach, że wywołanie createIndex()
o tej samej nazwie, ale innych opcjach niż istniejący indeks, zwróci błąd MongoError: Index with name: **indexName** already exists with different options
jak wyjaśniono w tym pytaniu.
Jeśli masz inne powody do sprawdzenia, możesz uzyskać dostęp do aktualnych danych indeksowych na dwa sposoby:
- Od wersji 3.0 możemy użyć
db.names.getIndexes()
gdzienames
to nazwa kolekcji. Dokumenty tutaj. - Przed wersją 3.0 możesz uzyskać dostęp do
system.indexes
kolekcji i wykonajfind
jak bri opisuje poniżej.