Stejně jako u každé databáze jsou indexy základní datové struktury v MongoDB. Podporují snadné databázové dotazy a umožňují vám ukládat a uspořádat část vaší sbírky do jedinečných polí. Indexy také bez problémů podporují dotazování na rozsah.
Pokud vaše aplikace používá MongoDB, chcete využít sílu indexů, aby byly vaše dotazy rychlejší a efektivnější. Co jsou tedy indexy v MongoDB a jak je můžete vytvořit?
Co jsou indexy v MongoDB?
Indexy v MongoDB vám umožňují upřednostnit některá pole v dokumentu a později je přeměnit na parametry dotazu. Při vytváření kolekce vytvoří MongoDB výchozí index ID. Ale můžete přidat další, pokud máte vyšší dotazy nebo potřeby uspořádání.
Jedinečné indexy také zabraňují duplicitám při zadávání dat. Jsou užitečné pro odmítnutí záznamů, které již v databázi existují. Můžete tak například použít jedinečné indexování uživatelských jmen a e-mailových polí.
Indexy vám pomohou získat přesně to, co chcete, pomocí definovaného formátu dotazu v požadovaném množství, aniž byste museli skenovat celou kolekci. Při vytváření indexu můžete určit, jak chcete data třídit, kdykoli na ně zadáte dotaz.
Pokud se například rozhodnete seřadit datové body podle jejich dat vstupu bez použití indexu, obvykle zadáte kritéria dotazu a pořadí řazení.
Řekněme, že chcete uspořádat věky vyšší než určité číslo podle jejich sestupného data zápisů. Váš dotaz obvykle vypadá takto:
db.collectionName.find({věk: {$gt: 50}}).sort({datum: -1})
Ale pokud jste měli index v datech vstupu, museli byste zadat pouze kritéria dotazu. Je tomu tak proto, že byste již při vytváření indexu seřadili datum sestupně.
V takovém případě bude výše uvedený dotaz vypadat takto:
db.collectionName.find({věk: {$gt: 50}})
Jak vytvořit index v MongoDB
V MongoDB můžete vytvářet indexy pomocí vestavěného rozhraní shellu. To je to, co použijeme v tomto tutoriálu.
Nicméně indexy neexistují samy o sobě. Musel jsi vytvořil databázi a kolekci než budete moci vytvořit index.
Jak jsme již zmínili, významnou vlastností indexování je to, že vám umožňuje určit kritéria řazení během vytváření indexu.
Například index, který uspořádává věk v obráceném pořadí, vypadá takto:
db.userCollection.createIndex({age: -1})
Záporné celé číslo (-1) v kódu říká MongoDB, aby uspořádal věk v opačném pořadí, kdykoli zadáte dotaz na data pomocí stáří index. Proto možná nebudete muset zadat pořadí řazení během dotazů, protože index to již zpracovává.
Chcete-li vytvořit index stejného pole vzestupně, nahraďte -1 s 1:
db.userCollection.createIndex({věk: 1})
Ačkoli v MongoDB existují další typy indexů, takto lze vytvářet jednoduché a složené formuláře – protože jsou nejpoužívanější.
Ale než budeme pokračovat, ujistěte se, že ano nastavit MongoDB serveru na vašem PC. Pokud jste tak již učinili, otevřete shell MongoDB a postupujte podle něj.
Vytvořte jeden index v MongoDB
Jednotné indexování v MongoDB je jednoduché. Chcete-li začít, vyberte databázi, která již obsahuje kolekce.
Řekněme, že název naší databáze je MUO:
použijte MUO
Jakmile si vyberete databázi, použijte createIndex() příkaz v shellu k vytvoření jediného indexu.
Chcete-li například vytvořit jeden index uživatelských jmen v kolekci a použít jej k dotazování v opačném pořadí:
db.collectionName.createIndex({uživatelské jméno: -1})
Víceklíčové indexování v MongoDB
Víceklíčové indexy se hodí pro indexování pole v komplexním datovém poli. Kolekce může například obsahovat komplexní data uživatelů s jejich informacemi v jiném poli. Řekněte například jméno, výšku a věk.
Můžete vytvořit víceklíčový index na výšce každého uživatele v tomto poli takto:
db.customers.createIndex({user.height: 1})
The výška ve výše uvedeném kódu je podmnožina uživatel pole.
Vytvořte složený index
Složený index obsahuje více než jeden index. Chcete-li vytvořit složený index adresy a typu produktu v kolekci zákazníků, například:
db.customer.createIndex({adresa: 1, produkty: 1})
Protože jste při vytváření výše uvedeného indexu nezadali jméno, MongoDB jej ve výchozím nastavení vytvoří. Ale odděluje název každého indexu podtržítkem. Je tedy hůře čitelný, zvláště pokud máte ve sloučenině více než dva indexy.
Chcete-li zadat název při vytváření složeného indexu:
db.customers.createIndex({umístění: 1, produkty: 1, hmotnost: -1}, {název: "myCompundIndex"})
Získejte všechny indexy ve sbírce
Chcete-li zobrazit všechny indexy v kolekci:
db.collectionName.getIndexes()
Výše uvedený kód vypíše všechny indexy v pojmenované kolekci.
Uspořádejte svou databázi pomocí indexů
Indexování v MongoDB snižuje latenci běhu při provádění souběžných dotazů. Navíc vám pomohou uspořádat databázi a učinit ji přístupnější. Jak jste viděli, vytváření indexů v MongoDB nakonec není složité. Zde uvedené příklady jsou dostatečné k tomu, abyste mohli začít s vytvářením indexu. Nicméně, abyste viděli své indexy v praxi, musíte vědět, jak funguje dotazování v MongoDB.
Seznámení s MongoDB je složité. Dostaňte se na zem s CRUD.
Přečtěte si další
- Programování
- Krajta
- Programování
- databáze

Idowu je nadšený z jakékoli chytré technologie a produktivity. Ve volném čase si hraje s kódováním a když se nudí, přepne na šachovnici, ale také se rád jednou za čas odpoutá od rutiny. Jeho vášeň ukazovat lidem cestu kolem moderních technologií ho motivuje k dalšímu psaní.
Přihlaste se k odběru našeho newsletteru
Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné e-knihy a exkluzivní nabídky!
Chcete-li se přihlásit k odběru, klikněte sem