Ako v každej databáze, indexy sú základné dátové štruktúry v MongoDB. Podporujú jednoduché databázové dotazy a umožňujú vám uložiť a usporiadať časť vašej zbierky do jedinečných polí. Indexy tiež podporujú vyhľadávanie rozsahu bez problémov.
Ak vaša aplikácia používa MongoDB, chcete využiť silu indexov na zrýchlenie a zefektívnenie vašich dopytov. Čo sú teda indexy v MongoDB a ako ich môžete vytvoriť?
Čo sú indexy v MongoDB?
Indexy v MongoDB vám umožňujú uprednostniť niektoré polia v dokumente a neskôr ich zmeniť na parametre dotazu. Pri vytváraní kolekcie MongoDB vytvorí predvolený index ID. Môžete však pridať ďalšie, ak máte vyššie otázky alebo potreby usporiadania.
Jedinečné indexy tiež zabraňujú duplikáciám pri zadávaní údajov. Sú vhodné na odmietnutie záznamov, ktoré už v databáze existujú. Môžete teda použiť jedinečné indexovanie napríklad pre používateľské mená a e-mailové polia.
Indexy vám pomôžu získať konkrétne to, čo chcete, pomocou definovaného formátu dotazu v požadovanom množstve bez skenovania celej kolekcie. Pri vytváraní indexu môžete zadať, ako chcete zoradiť údaje, kedykoľvek ich zadáte.
Ak sa napríklad rozhodnete zoradiť údajové body podľa ich dátumov vstupu bez použitia indexu, zvyčajne zadáte kritériá dotazu a poradie zoradenia.
Povedzme, že chcete usporiadať vekové skupiny vyššie ako určité číslo podľa ich zostupného dátumu zadania. Váš dopyt zvyčajne vyzerá takto:
db.collectionName.find({vek: {$gt: 50}}).sort({dátum: -1})
Ak ste však mali index k dátumom vstupu, museli by ste zadať iba kritériá dotazu. Je to tak preto, že dátum by ste už pri vytváraní indexu zoradili zostupne.
V takom prípade bude vyššie uvedený dotaz vyzerať takto:
db.collectionName.find({vek: {$gt: 50}})
Ako vytvoriť index v MongoDB
Indexy môžete vytvárať v MongoDB pomocou jeho vstavaného rozhrania shell. To je to, čo použijeme v tomto návode.
Indexy však neexistujú samostatne. Museli ste vytvoril databázu a kolekciu pred vytvorením indexu.
Ako sme už spomenuli, významnou črtou indexovania je to, že vám umožňuje určiť kritériá triedenia počas vytvárania indexu.
Napríklad index, ktorý usporiada vek v opačnom poradí, vyzerá takto:
db.userCollection.createIndex({vek: -1})
Záporné celé číslo (-1) v kóde hovorí MongoDB, aby usporiadal vek v opačnom poradí vždy, keď zadáte dopyt na údaje pomocou Vek index. Preto možno nebudete musieť zadať poradie triedenia počas dotazov, pretože index to už spracováva.
Ak chcete vytvoriť index rovnakého poľa vzostupne, nahraďte -1 s 1:
db.userCollection.createIndex({vek: 1})
Hoci v MongoDB existujú aj iné typy indexov, takto sa vytvárajú jednoduché a zložené formuláre – keďže sú najpoužívanejšie.
Ale skôr ako budeme pokračovať, uistite sa, že máte nastaviť MongoDB server na vašom PC. Ak ste tak už urobili, otvorte shell MongoDB a postupujte podľa neho.
Vytvorte jeden index v MongoDB
Jednotné indexovanie v MongoDB je jednoduché. Ak chcete začať, vyberte databázu, ktorá už obsahuje kolekcie.
Povedzme, že názov našej databázy je MUO:
použite MUO
Po výbere databázy použite createIndex() príkaz v shellu na vytvorenie jedného indexu.
Ak chcete napríklad vytvoriť jeden index používateľského mena v kolekcii a použiť ho na dopytovanie v opačnom poradí:
db.collectionName.createIndex({používateľské meno: -1})
Viackľúčové indexovanie v MongoDB
Viackľúčové indexy sa hodia na indexovanie poľa v komplexnom dátovom poli. Kolekcia môže napríklad obsahovať zložité údaje používateľov s ich informáciami v inom poli. Povedzte napríklad meno, výšku a vek.
Môžete vytvoriť viackľúčový index pre výšku každého používateľa v tomto poli takto:
db.customers.createIndex({user.height: 1})
The výška vo vyššie uvedenom kóde je podmnožina užívateľ lúka.
Vytvorte zložený index
Zložený index obsahuje viac ako jeden index. Ak chcete vytvoriť zložený index adresy a typu produktu v kolekcii zákazníkov, napríklad:
db.customer.createIndex({adresa: 1, produkty: 1})
Keďže ste pri vytváraní vyššie uvedeného indexu nezadali názov, MongoDB ho predvolene vytvorí. Ale oddeľuje názov každého indexu podčiarkovníkom. Je teda horšie čitateľný, najmä ak máte v zložení viac ako dva indexy.
Ak chcete zadať názov pri vytváraní zloženého indexu:
db.customers.createIndex({umiestnenie: 1, produkty: 1, hmotnosť: -1}, {názov: "myCompundIndex"})
Získajte všetky indexy v kolekcii
Ak chcete zobraziť všetky indexy v kolekcii:
db.collectionName.getIndexes()
Vyššie uvedený kód vypíše všetky indexy v pomenovanej kolekcii.
Usporiadajte si databázu pomocou indexov
Indexovanie v MongoDB znižuje latenciu behu pri vykonávaní súbežných dotazov. Navyše vám pomôžu organizovať databázu a urobiť ju dostupnejšou. Ako ste videli, vytváranie indexov v MongoDB napokon nie je zložité. Tu uvedené príklady sú dostatočné na to, aby ste mohli začať s vytváraním indexu. Aby ste však videli svoje indexy v praxi, musíte vedieť, ako funguje dopytovanie v MongoDB.
Zoznámenie sa s MongoDB je zložité. Dostaňte sa na zem s CRUD.
Prečítajte si ďalej
- Programovanie
- Python
- Programovanie
- databázy
Idowu je nadšený z akejkoľvek inteligentnej technológie a produktivity. Vo voľnom čase sa hrá s kódovaním a keď sa nudí, prepne na šachovnicu, no tiež sa rád raz za čas odtrhne od rutiny. Jeho vášeň ukázať ľuďom cestu okolo moderných technológií ho motivuje k ďalšiemu písaniu.
prihlásiť sa ku odberu noviniek
Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné e-knihy a exkluzívne ponuky!
Kliknutím sem sa prihlásite na odber