index v MongoDB je speciální datová struktura, která obsahuje data několika polí dokumentů, na kterých je index vytvořen. Indexy zvyšují rychlost vyhledávacích operací v databázi, protože místo prohledávání celého dokumentu se vyhledávání provádí na indexech, které obsahují jen několik polí. Na druhou stranu, mít příliš mnoho indexů může brzdit výkon insert, update a delete operace, protože psát další a další údaje, prostoru, používané indexy.
jak vytvořit index v MongoDB
syntaxe:
db.collection_name.createIndex({field_name: 1 or -1})
hodnota 1 je pro vzestupné pořadí a -1 je pro sestupné pořadí.
například mám kolekci studentdata
. Dokumenty uvnitř této kolekce mají následující pole:
student_name, student_id a student_age
řekněme, že chci vytvořit index na student_name pole ve vzestupném pořadí:
db.studentdata.createIndex({student_name: 1})
Výstup:
{ "createdCollectionAutomatically" : false, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1}
vytvořili Jsme index na student_name což znamená, že když někdo hledá dokument založený na student_name, vyhledávání bude rychlejší, protože index bude použit pro toto hledání. Proto je důležité vytvořit index na poli, které bude často vyhledáváno ve sbírce.
MongoDB-nalezení indexů v kolekci
můžeme použít metodu getIndexes () k nalezení všech indexů vytvořených v kolekci. Syntaxe pro tuto metodu je:
db.collection_name.getIndexes()
Tak, aby se indexy studentdata
kolekce, příkaz bude následující:
> db.studentdata.getIndexes()
výstup ukazuje, že máme dva indexy v této kolekci. Výchozí index vytvořený na _id a index, který jsme vytvořili na student_name pole.
MongoDB-Drop indexy v kolekci
můžete buď pokles konkrétní index nebo všechny indexy.
upuštění určitého indexu:
pro tento účel se používá metoda dropIndex ().
db.collection_name.dropIndex({index_name: 1})
Umožňuje drop index, který jsme vytvořili na student_name
pole v kolekci studentdata
. Příkaz pro tento:
db.studentdata.dropIndex({student_name: 1})
nIndexesWas: To ukazuje, kolik indexy byly tam dříve, než tento příkaz byl popraven
ok: 1: To znamená, že je příkaz spuštěn úspěšně.
upuštění všech indexů:
Chcete-li zrušit všechny indexy kolekce, používáme metodu dropIndexes ().
syntaxe metody dropIndexs ():
db.collection_name.dropIndexes()
řekněme, že chceme zrušit všechny indexy studentdata
sbírka.
db.studentdata.dropIndexes()
zpráva „non-_id indexy klesly kolekce“ označuje, že výchozí index _id bude stále a nemůže být zrušen. To znamená, že pomocí této metody můžeme jen pokles indexů, které jsme vytvořili, nemůžeme drop výchozí index vytvořen na _id pole.