MongoDB – Indexování

Reklama

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()>
Reklama

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.