MongoDB zapewnia kilka sposobów na usunięcie indeksu lub indeksów.
Aby usunąć pojedynczy indeks, możesz użyć dropIndex()
metoda.
Aby usunąć wiele indeksów, możesz użyć funkcji dropIndexes()
metody lub dropIndexes
polecenie administracyjne.
dropIndex()
Metoda
Jeśli chcesz usunąć tylko jeden indeks, możesz użyć dropIndex()
metoda. Ta metoda akceptuje nazwę indeksu lub dokument specyfikacji.
Oto przykład upuszczania indeksu przy użyciu nazwy indeksu:
db.bars.dropIndex("location_2dsphere")
Wyjście:
{ "nIndexesWas" : 3, "ok" : 1 }
To mówi nam, że indeks o nazwie location_2dsphere
został pomyślnie usunięty.
Oto przykład upuszczania indeksu przez przekazanie jego dokumentu specyfikacji:
db.bars.dropIndex( { "name" : 1 } )
Wyjście:
{ "nIndexesWas" : 2, "ok" : 1 }
Widzimy, że ten wskaźnik również spadł. Ten indeks miał specyfikację { "name" : 1 }
, który jest dokumentem specyfikacji, którego użyłem podczas tworzenia indeksu.
dropIndex()
metoda jest opakowaniem wokół dropIndexes
polecenie.
dropIndexes()
Metoda
dropIndexes()
metoda może być przydatna, jeśli chcesz usunąć więcej niż jeden indeks. Możesz także usunąć pojedynczy indeks, ma on tylko dodatkową możliwość usunięcia wielu (lub wszystkich) indeksów.
Ta metoda akceptuje nazwę indeksu lub jego dokument specyfikacji dla każdego indeksu do usunięcia. Jeśli upuszczasz więcej niż jeden indeks, musisz podać ich nazwy/dokumenty specyfikacji w tablicy.
Oto przykład usunięcia dwóch indeksów przy użyciu ich nazw indeksów:
db.pets.dropIndexes( [ "type_1", "name_1" ])
Wyjście:
{ "nIndexesWas" : 3, "ok" : 1 }
Pamiętaj, że jeśli jest to indeks tekstowy, możesz określić tylko nazwę indeksu.
Możesz usunąć wszystkie indeksy (z wyjątkiem _id
index) przez całkowite pominięcie parametru:
db.pets.dropIndexes()
dropIndexes()
metoda jest opakowaniem wokół dropIndexes
polecenie.
dropIndexes
Polecenie
dropIndexes
polecenie pozwala zrobić to samo, co dropIndexes()
metoda. Jak wspomniano, dropIndexes()
metoda jest opakowaniem wokół dropIndexes
polecenie
Oto przykład upuszczania pojedynczego indeksu:
db.runCommand( { dropIndexes: "posts", index: "title_1" })
Wyjście:
{ "nIndexesWas" : 4, "ok" : 1 }
A oto przykład upuszczania wielu indeksów:
db.runCommand( {
dropIndexes: "posts",
index: [ "tags_1", "body_text" ]
})
Wynik:
{ "nIndexesWas" : 3, "ok" : 1 }
Aby usunąć wszystkie indeksy (z wyjątkiem _id
indeks), użyj symbolu wieloznacznego gwiazdki (*
):
db.runCommand( { dropIndexes: "posts", index: "*" })
Wynik:
{ "nIndexesWas" : 4, "msg" : "non-_id indexes dropped for collection", "ok" : 1 }