Indexy podporují efektivní řešení dotazů. Bez indexů musí MongoDB prohledávat každý dokument kolekce, aby vybrala ty dokumenty, které odpovídají příkazu dotazu. Toto skenování je velmi neefektivní a vyžaduje, aby MongoDB zpracovávala velký objem dat.
Indexy jsou speciální datové struktury, které uchovávají malou část množiny dat v přehledné podobě. Index uchovává hodnotu určitého pole nebo množiny polí, seřazenou podle hodnoty pole uvedené v indexu.
Metoda createIndex()
Pro vytvoření indexu je třeba použít metodu createIndex() databáze MongoDB.
Syntaxe
Základní syntaxe metody createIndex() je následující().
>db.COLLECTION_NAME.createIndex({KEY:1})
Zde klíč je název pole, na kterém chcete vytvořit index, a 1 je pro vzestupné pořadí. Chcete-li vytvořit index v sestupném pořadí, musíte použít -1.
Příklad
>db.mycol.createIndex({"title":1}){"createdCollectionAutomatically" : false,"numIndexesBefore" : 1,"numIndexesAfter" : 2,"ok" : 1}>
V metodě createIndex() můžete předat více polí, abyste vytvořili index na více polích.
>db.mycol.createIndex({"title":1,"description":-1})>
Tato metoda také přijímá seznam možností (které jsou nepovinné). Následuje jejich seznam –
Parametr | Typ | Popis |
---|---|---|
background | Boolean | Vytváří index na pozadí, takže vytváření indexu neblokuje ostatní činnosti databáze. Zadejte true pro sestavení na pozadí. Výchozí hodnota je false. |
unique | Boolean | Vytvoří unikátní index, takže kolekce nepřipustí vložení dokumentů, jejichž indexový klíč nebo klíče se shodují s existující hodnotou v indexu. Zadejte true pro vytvoření jedinečného indexu. Výchozí hodnota je false. |
name | string | Název indexu. Pokud není zadán, MongoDB vygeneruje název indexu spojením názvů indexovaných polí a pořadí třídění. | sparse | Boolean | Pokud je true, index bude odkazovat pouze na dokumenty se zadaným polem. Tyto indexy spotřebují méně místa, ale v některých situacích se chovají jinak (zejména při třídění). Výchozí hodnota je false. |
expireAfterSeconds | integer | Určuje hodnotu v sekundách jako TTL, která řídí, jak dlouho bude MongoDB uchovávat dokumenty v této kolekci. |
váha | dokumentu | Váha je číslo v rozsahu od 1 do 99 999 a označuje význam pole vzhledem k ostatním indexovaným polím z hlediska skóre. |
default_language | string | Pro textový index jazyk, který určuje seznam stop slov a pravidla pro stemmer a tokenizátor. Výchozí hodnota je angličtina. |
language_override | string | Pro textový index zadejte název pole v dokumentu, které obsahuje, jazyk, který má přepsat výchozí jazyk. Výchozí hodnota je language. |
Metoda dropIndex()
Konkrétní index můžete zrušit pomocí metody dropIndex() databáze MongoDB.
Syntaxe
Základní syntaxe metody DropIndex() je následující().
>db.COLLECTION_NAME.dropIndex({KEY:1})
Zde klíč je název souboru, na kterém chcete vytvořit index, a 1 je pro vzestupné pořadí. Chcete-li vytvořit index v sestupném pořadí, musíte použít -1.
Příklad
> db.mycol.dropIndex({"title":1}){"ok" : 0,"errmsg" : "can't find index with key: { title: 1.0 }","code" : 27,"codeName" : "IndexNotFound"}
Metoda dropIndexes()
Tato metoda odstraní více (zadaných) indexů na kolekci.
Syntaxe
Základní syntaxe metody DropIndexes() je následující() –
>db.COLLECTION_NAME.dropIndexes()
Příklad
Předpokládejme, že jsme vytvořili 2 indexy v pojmenované kolekci mycol, jak je uvedeno níže. –
> db.mycol.createIndex({"title":1,"description":-1})
Následující příklad odstraní výše vytvořené indexy mycol –
>db.mycol.dropIndexes({"title":1,"description":-1}){ "nIndexesWas" : 2, "ok" : 1 }>
Metoda getIndexes()
Tato metoda vrací popis všech indexů int kolekce.
Syntaxe
Následuje základní syntaxe od metody getIndexes() –
db.COLLECTION_NAME.getIndexes()
Příklad
Předpokládejme, že jsme vytvořili 2 indexy v pojmenovaném mycol. jak je znázorněno níže –
> db.mycol.createIndex({"title":1,"description":-1})
Následující příklad načte všechny indexy v kolekci mycol –
> db.mycol.getIndexes()>