MongoDB poskytuje několik způsobů, jak zrušit index nebo indexy.
Chcete-li zrušit jeden index, můžete použít dropIndex()
metoda.
Chcete-li zrušit více indexů, můžete použít buď dropIndexes()
nebo dropIndexes
administrační příkaz.
dropIndex()
Metoda
Pokud potřebujete zrušit pouze jeden index, můžete použít dropIndex()
metoda. Tato metoda přijímá název indexu nebo dokument s jeho specifikací.
Zde je příklad zrušení indexu pomocí názvu indexu:
db.bars.dropIndex("location_2dsphere")
Výstup:
{ "nIndexesWas" : 3, "ok" : 1 }
To nám říká, že index nazvaný location_2dsphere
byla úspěšně zrušena.
Zde je příklad zrušení indexu předáním jeho dokumentu specifikace:
db.bars.dropIndex( { "name" : 1 } )
Výstup:
{ "nIndexesWas" : 2, "ok" : 1 }
Vidíme, že tento index byl také vypuštěn. Tento index měl specifikaci { "name" : 1 }
, což je dokument specifikace, který jsem použil při vytváření indexu.
dropIndex()
metoda je obal kolem dropIndexes
příkaz.
dropIndexes()
Metoda
dropIndexes()
metoda může být užitečná, pokud potřebujete vypustit více než jeden index. Můžete také zrušit jeden index, jen má přidanou možnost, že je možné zrušit více (nebo všechny) indexy.
Tato metoda přijímá název indexu nebo jeho specifikační dokument pro každý z indexů, které mají být odstraněny. Pokud odstraňujete více než jeden index, musíte zadat jejich názvy/dokumenty se specifikacemi v poli.
Zde je příklad odstranění dvou indexů pomocí jejich názvů indexů:
db.pets.dropIndexes( [ "type_1", "name_1" ])
Výstup:
{ "nIndexesWas" : 3, "ok" : 1 }
Všimněte si, že pokud se jedná o textový index, můžete zadat pouze název indexu.
Můžete zrušit všechny indexy (kromě _id
index) úplným vynecháním parametru:
db.pets.dropIndexes()
dropIndexes()
metoda je obal kolem dropIndexes
příkaz.
dropIndexes
Příkaz
dropIndexes
vám umožňuje dělat to samé, co dropIndexes()
metoda. Jak již bylo zmíněno, dropIndexes()
metoda je obal kolem dropIndexes
příkaz
Zde je příklad odstranění jednoho indexu:
db.runCommand( { dropIndexes: "posts", index: "title_1" })
Výstup:
{ "nIndexesWas" : 4, "ok" : 1 }
A zde je příklad odstranění více indexů:
db.runCommand( {
dropIndexes: "posts",
index: [ "tags_1", "body_text" ]
})
Výsledek:
{ "nIndexesWas" : 3, "ok" : 1 }
Chcete-li zrušit všechny indexy (kromě _id
index), použijte zástupný znak hvězdičky (*
):
db.runCommand( { dropIndexes: "posts", index: "*" })
Výsledek:
{ "nIndexesWas" : 4, "msg" : "non-_id indexes dropped for collection", "ok" : 1 }