Istnieje kilka sposobów na usunięcie indeksu w MongoDB, jednym z nich jest użycie funkcji dropIndex()
metoda.
Jest dość prosty w użyciu – wystarczy podać nazwę indeksu lub dokument jego definicji/specyfikacji. Jeśli jest to indeks tekstowy, możesz określić tylko nazwę indeksu.
Przykładowe indeksy
Załóżmy, że mamy kolekcję o nazwie bars
. Możemy użyć getIndexes()
aby zobaczyć, jakie ma indeksy:
db.bars.getIndexes()
Wynik:
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" }, { "v" : 2, "key" : { "location" : "2dsphere" }, "name" : "location_2dsphere", "2dsphereIndexVersion" : 3 }, { "v" : 2, "key" : { "name" : 1 }, "name" : "name_1", "hidden" : true } ]
Widzimy, że na bars
znajdują się trzy indeksy kolekcja.
- Pierwszy indeks znajduje się w
_id
pole. MongoDB tworzy unikalny indeks na_id
pole podczas tworzenia kolekcji. Nie możesz usunąć tego indeksu. - Drugi indeks to indeks 2dsphere w
location
pole. - Trzeci indeks znajduje się na
name
pole. W tym przypadku jest to ukryty indeks (ma"hidden" : true
w swojej specyfikacji).
Upuść indeks według nazwy
Oto przykład upuszczania indeksu przez przekazanie jego nazwy do dropIndex()
metoda:
db.bars.dropIndex("location_2dsphere")
Wyjście:
{ "nIndexesWas" : 3, "ok" : 1 }
To mówi nam, że indeks został pomyślnie usunięty.
Upuść indeks według jego specyfikacji
Oto przykład upuszczania indeksu przez przekazanie jego dokumentu specyfikacji do dropIndex()
metoda:
db.bars.dropIndex( { "name" : 1 } )
Wyjście:
{ "nIndexesWas" : 2, "ok" : 1 }
Widzimy, że ten indeks również został usunięty.
Przypomnij sobie, że jest to indeks, który był ukryty. Ukryte indeksy możesz bez problemu upuścić (nie musisz ich odkrywać przed upuszczeniem).
Sprawdź wyniki
Uruchommy getIndexes()
ponownie, aby zobaczyć wyniki:
db.bars.getIndexes()
Wynik:
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } ]
Tym razem jest tylko jeden indeks – domyślny _id
indeks.
dropIndex()
metoda jest opakowaniem wokół dropIndexes
polecenie.
Dokumentacja MongoDB
Zobacz dokumentację MongoDB, aby uzyskać więcej informacji na temat dropIndex()
metoda.