Kot pri vsaki zbirki podatkov so indeksi bistvene podatkovne strukture v MongoDB. Spodbujajo enostavne poizvedbe v zbirki podatkov in vam omogočajo shranjevanje in urejanje dela zbirke na edinstvenih poljih. Indeksi podpirajo tudi poizvedovanje po obsegu brez težav.
Če vaša aplikacija uporablja MongoDB, želite izkoristiti moč indeksov, da bodo vaše poizvedbe hitrejše in učinkovitejše. Kaj so torej indeksi v MongoDB in kako jih lahko ustvarite?
Kaj so indeksi v MongoDB?
Indeksi v MongoDB vam omogočajo, da date prednost nekaterim poljem v dokumentu in jih pozneje spremenite v parametre poizvedbe. Pri ustvarjanju zbirke MongoDB ustvari privzeti indeks ID-ja. Lahko pa dodate več, če imate večje poizvedbe ali potrebe po dogovoru.
Edinstveni indeksi preprečujejo tudi podvojene podatke med vnosom podatkov. Pridejo prav za zavrnitev vnosov, ki že obstajajo v bazi. Tako lahko na primer uporabite edinstveno indeksiranje uporabniških imen in e-poštnih polj.
Indeksi vam pomagajo zgrabiti točno tisto, kar želite, z uporabo definirane oblike poizvedbe v zahtevani količini, ne da bi skenirali celotno zbirko. Ko ustvarjate indeks, lahko določite, kako želite, da so vaši podatki razvrščeni, kadar koli jih poizvedujete.
Če se na primer odločite razvrstiti podatkovne točke po datumih vnosa brez uporabe indeksa, boste običajno zagotovili merila poizvedbe in vrstni red razvrščanja.
Recimo, da želite razporediti starosti, ki so višje od določenega števila, glede na njihov padajoči datum vnosov. Vaša poizvedba običajno izgleda tako:
db.collectionName.find({starost: {$gt: 50}}).sort({datum: -1})
Če pa ste imeli indeks na datumih vnosa, bi morali navesti le merila poizvedbe. To je zato, ker bi že med ustvarjanjem indeksa razvrstili datum padajoče.
V tem primeru zgornja poizvedba postane:
db.collectionName.find({starost: {$gt: 50}})
Kako ustvariti indeks v MongoDB
Indekse v MongoDB lahko ustvarite s pomočjo vgrajenega vmesnika lupine. To je tisto, kar bomo uporabili v tej vadnici.
Kljub temu indeksi ne obstajajo sami. Moral si ustvaril bazo podatkov in zbirko preden lahko ustvarite indeks.
Kot smo že omenili, je pomembna značilnost indeksiranja ta, da vam omogoča, da določite kriterije razvrščanja med ustvarjanjem indeksa.
Na primer, indeks, ki razporedi starost v obratnem vrstnem redu, izgleda takole:
db.userCollection.createIndex({starost: -1})
Negativno celo število (-1) v kodi pove MongoDB, naj razporedi starost v obratnem vrstnem redu vsakič, ko povprašate po podatkih z uporabo starost indeks. Tako vam med poizvedbami morda ne bo treba določiti vrstnega reda razvrščanja, saj indeks to že obravnava.
Če želite ustvariti indeks istega polja naraščajoče, zamenjajte -1 z 1:
db.userCollection.createIndex({starost: 1})
Čeprav obstajajo druge vrste indeksov v MongoDB, je to način za ustvarjanje enojnih in sestavljenih obrazcev – saj so najpogosteje uporabljeni.
Toda preden nadaljujemo, se prepričajte, da ste nastavite MongoDB strežnik na vašem računalniku. Če ste to že storili, odprite lupino MongoDB in sledite.
Ustvarite en sam indeks v MongoDB
Posamezno indeksiranje v MongoDB je preprosto. Za začetek izberite bazo podatkov, ki že vsebuje zbirke.
Recimo, da je ime naše baze podatkov MUO:
uporabite MUO
Ko izberete bazo podatkov, uporabite createIndex() ukaz v lupini, da ustvarite en sam indeks.
Če želite na primer ustvariti en indeks uporabniškega imena v zbirki in ga uporabiti za poizvedbo v obratnem vrstnem redu:
db.collectionName.createIndex({uporabniško ime: -1})
Indeksiranje z več ključi v MongoDB
Indeksi z več ključi so priročni za indeksiranje polja v kompleksnem podatkovnem nizu. Zbirka lahko na primer vsebuje zapletene podatke uporabnikov z njihovimi informacijami v drugem polju. Recimo na primer ime, višino in starost.
Ustvarite lahko indeks z več ključi za višino vsakega uporabnika v tem nizu, kot je ta:
db.customers.createIndex({user.height: 1})
The višina v zgornji kodi je podmnožica uporabnik polje.
Ustvarite sestavljeni indeks
Sestavljeni indeks vsebuje več kot en indeks. Če želite ustvariti sestavljeni indeks naslova in vrste izdelka v zbirki strank, na primer:
db.customer.createIndex({naslov: 1, izdelki: 1})
Ker pri ustvarjanju zgornjega indeksa niste navedli imena, ga MongoDB privzeto ustvari. Toda ime vsakega indeksa loči s podčrtajem. Zato je manj berljiv, še posebej, če imate več kot dva indeksa v spojini.
Če želite določiti ime pri ustvarjanju sestavljenega indeksa:
db.customers.createIndex({lokacija: 1, izdelki: 1, teža: -1}, {ime: "myCompundIndex"})
Pridobite vse indekse v zbirki
Za ogled vseh indeksov v zbirki:
db.collectionName.getIndexes()
Zgornja koda izpiše vse indekse v poimenovani zbirki.
Organizirajte svojo bazo podatkov z indeksi
Indeksiranje v MongoDB zmanjša zamudo med izvajanjem pri izvajanju sočasnih poizvedb. Poleg tega vam pomagajo organizirati bazo podatkov in jo narediti bolj dostopno. Kot ste videli, ustvarjanje indeksov v MongoDB navsezadnje ni zapleteno. Primeri tukaj so dovolj, da začnete z ustvarjanjem indeksa. Ne glede na to, če želite videti svoje indekse v praksi, morate vedeti, kako deluje poizvedovanje v MongoDB.
Spoznavanje MongoDB je težavno. Zadeti se s CRUD-om.
Preberite Naprej
- Programiranje
- Python
- Programiranje
- bazo podatkov

Idowu je navdušen nad vsemi pametnimi tehnologijami in produktivnostjo. V prostem času se igra s kodiranjem in, ko mu je dolgčas, preklopi na šahovnico, rad pa se občasno odmakne od rutine. Njegova strast, da ljudem pokaže pot okoli sodobne tehnologije, ga motivira, da piše več.
Naročite se na naše novice
Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e-knjige in ekskluzivne ponudbe!
Kliknite tukaj, da se naročite