Kao i kod svake baze podataka, indeksi su bitne strukture podataka u MongoDB-u. Pospješuju jednostavne upite u bazi podataka i omogućuju vam da pohranite i uredite dio svoje zbirke u jedinstvenim poljima. Indeksi također podržavaju upite raspona bez problema.
Ako vaša aplikacija koristi MongoDB, želite iskoristiti moć indeksa kako biste svoje upite učinili bržim i učinkovitijim. Dakle, što su indeksi u MongoDB-u i kako ih možete stvoriti?
Što su indeksi u MongoDB-u?
Indeksi u MongoDB-u omogućuju vam da odredite prioritet nekim poljima u dokumentu i kasnije ih pretvorite u parametre upita. Prilikom izrade zbirke, MongoDB stvara zadani ID indeks. Ali možete dodati više ako imate veće upite ili potrebe za dogovorom.
Jedinstveni indeksi također sprječavaju duplikate tijekom unosa podataka. Oni su korisni za odbijanje unosa koji već postoje u bazi podataka. Tako možete koristiti jedinstveno indeksiranje na korisničkim imenima i poljima e-pošte, na primjer.
Indeksi vam pomažu da zgrabite upravo ono što želite pomoću definiranog formata upita u potrebnoj količini bez skeniranja cijele zbirke. Prilikom izrade indeksa možete odrediti kako želite da se vaši podaci razvrstavaju kad god ih postavite.
Na primjer, ako odlučite sortirati podatkovne točke prema datumima unosa bez korištenja indeksa, obično ćete dati kriterije upita i redoslijed sortiranja.
Recimo da želite rasporediti dobi veće od određenog broja prema opadajućem datumu unosa. Vaš upit obično izgleda ovako:
db.collectionName.find({dob: {$gt: 50}}).sort({datum: -1})
Ali ako ste imali indeks na datume unosa, trebali biste samo navesti kriterije upita. To je tako jer biste već sortirali datum silazno tijekom stvaranja indeksa.
U tom slučaju, gornji upit postaje:
db.collectionName.find({dob: {$gt: 50}})
Kako stvoriti indeks u MongoDB-u
Možete kreirati indekse u MongoDB koristeći njegovo ugrađeno sučelje ljuske. Dakle, to je ono što ćemo koristiti u ovom vodiču.
Ipak, indeksi ne postoje sami. Mora da si stvorio bazu podataka i zbirku prije nego što možete stvoriti indeks.
Kao što smo prethodno spomenuli, istaknuta značajka indeksiranja je to što vam omogućuje određivanje kriterija sortiranja tijekom kreiranja indeksa.
Na primjer, indeks koji raspoređuje starost obrnutim redoslijedom izgleda ovako:
db.userCollection.createIndex({dob: -1})
Negativni cijeli broj (-1) u kodu govori MongoDB-u da rasporedi dob obrnutim redoslijedom kad god postavljate upit za podatke pomoću dob indeks. Stoga možda nećete morati specificirati redoslijed sortiranja tijekom upita jer indeks to već obrađuje.
Za stvaranje indeksa istog polja uzlazno, zamijenite -1 s 1:
db.userCollection.createIndex({dob: 1})
Iako postoje i drugi tipovi indeksa u MongoDB-u, ovako se stvaraju pojedinačni i složeni oblici – budući da se najčešće koriste.
Ali prije nego što nastavimo, uvjerite se da jeste postaviti MongoDB poslužitelja na vašem računalu. Ako ste to već učinili, otvorite ljusku MongoDB i nastavite dalje.
Napravite jedinstveni indeks u MongoDB-u
Pojedinačno indeksiranje u MongoDB-u je jednostavno. Za početak odaberite bazu podataka koja već sadrži zbirke.
Recimo da je ime naše baze podataka MUO:
koristiti MUO
Nakon što odaberete bazu podataka, koristite createIndex() naredbu u ljusci za stvaranje jednog indeksa.
Na primjer, da biste stvorili jedan indeks korisničkog imena u zbirci i upotrijebili ga za upite obrnutim redoslijedom:
db.collectionName.createIndex({korisničko ime: -1})
Indeksiranje s više ključeva u MongoDB-u
Indeksi s više ključeva su korisni za indeksiranje polja u složenom nizu podataka. Na primjer, zbirka može sadržavati složene podatke korisnika s njihovim informacijama u drugom nizu. Na primjer, recite ime, visinu i dob.
Možete stvoriti indeks s više ključeva na visini svakog korisnika u tom nizu na sljedeći način:
db.customers.createIndex({user.height: 1})
The visina u gornjem kodu je podskup korisnik polje.
Izradite složeni indeks
Složeni indeks sadrži više od jednog indeksa. Za izradu složenog indeksa adrese i vrste proizvoda na zbirci kupaca, na primjer:
db.customer.createIndex({adresa: 1, proizvodi: 1})
Budući da niste naveli ime tijekom izrade gornjeg indeksa, MongoDB ga stvara prema zadanim postavkama. Ali naziv svakog indeksa odvaja donjom crtom. Stoga je manje čitljiv, pogotovo ako imate više od dva indeksa u složenici.
Da biste naveli naziv pri izradi složenog indeksa:
db.customers.createIndex({lokacija: 1, proizvodi: 1, težina: -1}, {name: "myCompundIndex"})
Dobijte sve indekse u zbirci
Za pregled svih indeksa u zbirci:
db.collectionName.getIndexes()
Gornji kod ispisuje sve indekse u imenovanoj kolekciji.
Organizirajte svoju bazu podataka s indeksima
Indeksiranje u MongoDB-u smanjuje kašnjenje tijekom izvođenja pri izvršavanju istodobnih upita. Osim toga, pomažu vam organizirati bazu podataka i učiniti je pristupačnijom. Kao što ste vidjeli, stvaranje indeksa u MongoDB ipak nije složeno. Primjeri ovdje dovoljni su da započnete s izradom indeksa. Ipak, da biste vidjeli svoje indekse u praksi, morate znati kako funkcioniraju upiti u MongoDB-u.
Upoznavanje s MongoDB-om je nezgodno. Udarite na tlo s CRUD-om.
Pročitajte dalje
- Programiranje
- Piton
- Programiranje
- baza podataka
Idowu je strastven za sve pametne tehnologije i produktivnost. U slobodno vrijeme igra se s kodiranjem i prelazi na šahovsku ploču kad mu je dosadno, ali voli se s vremena na vrijeme otrgnuti od rutine. Njegova strast da ljudima pokaže put oko moderne tehnologije motivira ga da piše više.
Pretplatite se na naše obavijesti
Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!
Kliknite ovdje za pretplatu