Kaip ir bet kurioje duomenų bazėje, indeksai yra pagrindinės MongoDB duomenų struktūros. Jie skatina paprastas duomenų bazių užklausas ir leidžia saugoti bei tvarkyti dalį savo kolekcijos unikaliuose laukuose. Indeksai taip pat palaiko diapazono užklausas be kliūčių.

Jei jūsų programa naudoja MongoDB, norite panaudoti indeksų galią, kad užklausos būtų greitesnės ir efektyvesnės. Taigi, kas yra MongoDB indeksai ir kaip juos sukurti?

Kas yra „MongoDB“ indeksai?

Indeksai MongoDB leidžia nustatyti kai kuriems dokumento laukams prioritetus ir vėliau paversti juos užklausos parametrais. Kurdama kolekciją, MongoDB sukuria numatytąjį ID indeksą. Tačiau galite pridėti daugiau, jei turite didesnių užklausų ar susitarimo poreikių.

Unikalūs indeksai taip pat neleidžia pasikartoti įvedant duomenis. Jie praverčia atmetant duomenų bazėje jau esančius įrašus. Pavyzdžiui, naudotojų vardų ir el. pašto laukuose galite naudoti unikalų indeksavimą.

Indeksai padeda patraukti konkrečiai tai, ko norite, naudojant apibrėžtą užklausos formatą reikiamu kiekiu, nenuskaitant visos kolekcijos. Kurdami indeksą galite nurodyti, kaip norite, kad jūsų duomenys būtų rūšiuojami, kai tik pateikiate užklausą.

instagram viewer

Pavyzdžiui, jei nuspręsite rūšiuoti duomenų taškus pagal jų įvedimo datas nenaudodami indekso, paprastai pateikiate užklausos kriterijus ir rūšiavimo tvarką.

Tarkime, kad norite išdėstyti amžių, didesnius nei tam tikras skaičius, mažėjančia įrašų data. Jūsų užklausa paprastai atrodo taip:

db.collectionName.find({amžius: {$gt: 50}}).sort({data: -1})

Bet jei įvedimo datomis turėjote indeksą, jums tereikės pateikti užklausos kriterijus. Taip yra todėl, kad kurdami indeksą jau surūšiavote datą mažėjimo tvarka.

Tokiu atveju aukščiau pateikta užklausa tampa tokia:

db.collectionName.find({amžius: {$gt: 50}})

Kaip sukurti indeksą MongoDB

Galite kurti indeksus MongoDB naudodami integruotą apvalkalo sąsają. Taigi tai ir naudosime šioje pamokoje.

Nepaisant to, indeksai neegzistuoja vieni. Tu turėjai sukūrė duomenų bazę ir kolekciją prieš sukurdami indeksą.

Kaip jau minėjome, svarbi indeksavimo ypatybė yra ta, kad kuriant indeksą galite nurodyti rūšiavimo kriterijus.

Pavyzdžiui, indeksas, išdėstantis amžių atvirkštine tvarka, atrodo taip:

db.userCollection.createIndex({amžius: -1})

Neigiamas sveikasis skaičius (-1) kode nurodo MongoDB išdėstyti amžių atvirkštine tvarka, kai pateikiate duomenų užklausą naudodami amžiaus indeksas. Taigi, jums gali nereikėti nurodyti rūšiavimo tvarkos atliekant užklausas, nes indeksas tai jau tvarko.

Norėdami sukurti to paties lauko indeksą didėjančia tvarka, pakeiskite -1 su 1:

db.userCollection.createIndex({amžius: 1})

Nors MongoDB yra ir kitų indeksų tipų, taip galima sukurti pavienes ir sudėtines formas, nes jos yra dažniausiai naudojamos.

Tačiau prieš tęsdami įsitikinkite, kad tai padarėte nustatyti MongoDB serverį savo kompiuteryje. Jei jau tai padarėte, atidarykite MongoDB apvalkalą ir sekite.

Sukurkite vieną indeksą MongoDB

Vienintelis indeksavimas MongoDB yra paprastas. Norėdami pradėti, pasirinkite duomenų bazę, kurioje jau yra kolekcijų.

Pasakykite, kad mūsų duomenų bazės pavadinimas yra MUO:

naudoti MUO

Pasirinkę duomenų bazę, naudokite CreateIndex() komandą apvalkale, kad sukurtumėte vieną indeksą.

Pavyzdžiui, norėdami sukurti vieną naudotojo vardo indeksą kolekcijoje ir naudoti jį užklausoms atvirkštine tvarka:

db.collectionName.createIndex({naudotojo vardas: -1})

Kelių klavišų indeksavimas MongoDB

Kelių klavišų indeksai yra naudingi indeksuojant lauką sudėtingame duomenų masyve. Pavyzdžiui, rinkinyje gali būti sudėtingų vartotojų duomenų, kurių informacija yra kitame masyve. Pavyzdžiui, pasakykite vardą, ūgį ir amžių.

Galite sukurti kelių klavišų indeksą pagal kiekvieno vartotojo ūgį tame masyve taip:

db.customers.createIndex({user.height: 1})

The aukščio pirmiau pateiktame kode yra poaibis Vartotojas lauke.

Sukurkite sudėtinį indeksą

Sudėtiniame indekse yra daugiau nei vienas indeksas. Pavyzdžiui, norėdami sukurti sudėtinį adreso ir produkto tipo indeksą klientų kolekcijoje:

db.customer.createIndex({adresas: 1, produktai: 1})

Kadangi kurdami aukščiau nurodytą indeksą nepateikėte pavadinimo, MongoDB jį sukuria pagal numatytuosius nustatymus. Bet kiekvieno indekso pavadinimas atskiriamas pabraukimu. Taigi jis mažiau skaitomas, ypač jei junginyje yra daugiau nei du indeksai.

Norėdami nurodyti pavadinimą kurdami sudėtinį indeksą:

db.customers.createIndex({vieta: 1, produktai: 1, svoris: -1}, {pavadinimas: "myCompundIndex"})

Gaukite visus kolekcijos indeksus

Norėdami peržiūrėti visus kolekcijos indeksus:

db.collectionName.getIndexes()

Aukščiau pateiktas kodas išveda visus indeksus į pavadintą rinkinį.

Sutvarkykite savo duomenų bazę naudodami indeksus

Indeksavimas MongoDB sumažina vykdymo laiko delsą vykdant vienu metu vykstančias užklausas. Be to, jie padeda tvarkyti duomenų bazę ir padaryti ją prieinamesnę. Kaip matėte, „MongoDB“ indeksų kūrimas nėra sudėtingas. Čia pateikiamų pavyzdžių pakanka, kad galėtumėte pradėti kurti indeksą. Nepaisant to, norėdami pamatyti savo indeksus praktiškai, turite žinoti, kaip užklausos veikia MongoDB.

Kaip atlikti CRUD operacijas MongoDB

Susipažinti su MongoDB yra sudėtinga. Paleiskite žemę su CRUD.

Skaitykite toliau

DalintisTviteryjeEl. paštas
Susijusios temos
  • Programavimas
  • Python
  • Programavimas
  • duomenų bazėje
Apie autorių
Idowu Omisola (119 straipsnių paskelbta)

Idowu aistringai vertina viską, kas yra išmanioji technologija ir produktyvumas. Laisvalaikiu jis žaidžia koduodamas ir, kai jam nuobodu, pereina prie šachmatų lentos, tačiau taip pat mėgsta retkarčiais atitrūkti nuo rutinos. Jo aistra parodyti žmonėms kelią apie šiuolaikines technologijas skatina jį rašyti daugiau.

Daugiau iš Idowu Omisola

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. knygų ir išskirtinių pasiūlymų!

Norėdami užsiprenumeruoti, spustelėkite čia