Tāpat kā jebkurā datu bāzē, indeksi ir būtiskas datu struktūras MongoDB. Tie veicina vienkāršus datubāzes vaicājumus un ļauj uzglabāt un sakārtot daļu no jūsu kolekcijas unikālos laukos. Indeksi atbalsta arī diapazona vaicājumu bez aizķeršanās.

Ja jūsu lietotnē tiek izmantots MongoDB, vēlaties izmantot indeksu iespējas, lai padarītu vaicājumus ātrākus un efektīvākus. Tātad, kas ir MongoDB indeksi un kā tos izveidot?

Kas ir MongoDB indeksi?

Indeksi MongoDB ļauj noteikt prioritāti dažiem dokumenta laukiem un vēlāk pārvērst tos vaicājuma parametros. Veidojot kolekciju, MongoDB izveido noklusējuma ID indeksu. Bet varat pievienot vairāk, ja jums ir augstāki vaicājumi vai vienošanās.

Unikālie indeksi arī novērš dublikātus datu ievades laikā. Tie noder datubāzē jau esošo ierakstu noraidīšanai. Tātad, piemēram, lietotājvārdos un e-pasta laukos varat izmantot unikālu indeksēšanu.

Indeksi palīdz tvert tieši to, ko vēlaties, izmantojot definēto vaicājuma formātu vajadzīgajā daudzumā, neskenējot visu kolekciju. Veidojot indeksu, varat norādīt, kā vēlaties kārtot datus ikreiz, kad to vaicājat.

Piemēram, ja izlemjat kārtot datu punktus pēc to ievades datumiem, neizmantojot indeksu, parasti norādīsiet vaicājuma kritērijus un kārtošanas secību.

Pieņemsim, ka vēlaties sakārtot vecumus, kas ir lielāki par noteiktu skaitu, pēc to ierakstu datuma dilstošā secībā. Jūsu vaicājums parasti izskatās šādi:

db.collectionName.find({vecums: {$gt: 50}}).sort({datums: -1})

Bet, ja ievades datumos būtu rādītājs, jums būtu jānorāda tikai vaicājuma kritēriji. Tas ir tāpēc, ka, veidojot indeksu, jūs jau esat sakārtojis datumu dilstošā secībā.

Tādā gadījumā iepriekš minētais vaicājums kļūst:

db.collectionName.find({vecums: {$gt: 50}})

Kā izveidot indeksu MongoDB

Jūs varat izveidot indeksus MongoDB, izmantojot tā iebūvēto čaulas saskarni. Tas ir tas, ko mēs izmantosim šajā apmācībā.

Tomēr indeksi nepastāv atsevišķi. Tev noteikti bija izveidoja datubāzi un kolekciju pirms varat izveidot indeksu.

Kā jau minēts iepriekš, svarīga indeksēšanas iezīme ir tā, ka tā ļauj norādīt kārtošanas kritērijus indeksa izveides laikā.

Piemēram, indekss, kas sakārto vecumu apgrieztā secībā, izskatās šādi:

db.userCollection.createIndex({vecums: -1})

Negatīvs vesels skaitlis (-1) kodā liek MongoDB sakārtot vecumu apgrieztā secībā ikreiz, kad vaicājat datus, izmantojot vecums rādītājs. Tādējādi vaicājumu laikā, iespējams, nav jānorāda kārtošanas secība, jo indekss to jau apstrādā.

Lai izveidotu viena un tā paša lauka indeksu augošā secībā, nomainiet -1 ar 1:

db.userCollection.createIndex({vecums: 1})

Lai gan MongoDB ir arī citi indeksu veidi, šādi var izveidot atsevišķas un saliktas formas, jo tās ir visbiežāk izmantotās.

Bet pirms mēs turpinām, pārliecinieties, ka esat iestatiet MongoDB serveri jūsu datorā. Ja jau esat to izdarījis, atveriet MongoDB čaulu un sekojiet līdzi.

Izveidojiet vienu indeksu MongoDB

Viena indeksēšana MongoDB ir vienkārša. Lai sāktu, atlasiet datu bāzi, kurā jau ir kolekcijas.

Sakiet, ka mūsu datu bāzes nosaukums ir MUO:

izmantojiet MUO

Kad esat izvēlējies datu bāzi, izmantojiet CreateIndex() komandu čaulā, lai izveidotu vienu indeksu.

Piemēram, lai kolekcijā izveidotu vienu lietotājvārda indeksu un izmantotu to vaicājumiem apgrieztā secībā:

db.collectionName.createIndex({lietotājvārds: -1})

Vairāku taustiņu indeksēšana MongoDB

Vairāku taustiņu indeksi ir noderīgi, lai indeksētu lauku sarežģītā datu masīvā. Piemēram, kolekcijā var būt ietverti sarežģīti lietotāju dati ar viņu informāciju citā masīvā. Piemēram, sakiet vārdu, augumu un vecumu.

Varat izveidot vairāku taustiņu indeksu katra lietotāja augumam šajā masīvā šādi:

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

The augstums iepriekš minētajā kodā ir apakškopa lietotājs lauks.

Izveidojiet salikto indeksu

Salikts indekss satur vairāk nekā vienu indeksu. Piemēram, lai izveidotu saliktu adreses un produkta veida indeksu klientu kolekcijā:

db.customer.createIndex({adrese: 1, produkti: 1})

Tā kā, veidojot iepriekš minēto indeksu, nenorādījāt nosaukumu, MongoDB to izveido pēc noklusējuma. Taču katra rādītāja nosaukumu tas atdala ar pasvītrojumu. Tāpēc tas ir mazāk lasāms, it īpaši, ja savienojumā ir vairāk nekā divi indeksi.

Lai norādītu nosaukumu, veidojot salikto indeksu:

db.customers.createIndex({atrašanās vieta: 1, produkti: 1, svars: -1}, {nosaukums: "myCompundIndex"})

Iegūstiet visus indeksus kolekcijā

Lai skatītu visus kolekcijas indeksus:

db.collectionName.getIndexes()

Iepriekš minētais kods izvada visus indeksus nosauktā kolekcijā.

Kārtojiet savu datu bāzi ar indeksiem

Indeksēšana MongoDB samazina izpildlaika latentumu, izpildot vienlaicīgus vaicājumus. Turklāt tie palīdz sakārtot datu bāzi un padarīt to pieejamāku. Kā redzējāt, indeksu izveide MongoDB nav sarežģīta. Šeit sniegtie piemēri ir pietiekami, lai jūs sāktu ar indeksa izveidi. Tomēr, lai redzētu savus indeksus praksē, jums jāzina, kā vaicājumi darbojas MongoDB.

Kā veikt CRUD operācijas MongoDB

Iepazīšanās ar MongoDB ir sarežģīta. Nospiediet zemi ar CRUD.

Lasiet Tālāk

DalītiesČivinātE-pasts
Saistītās tēmas
  • Programmēšana
  • Python
  • Programmēšana
  • datu bāze
Par autoru
Idowu Omisola (119 publicēti raksti)

Idowu aizraujas ar jebko viedo tehnoloģiju un produktivitāti. Brīvajā laikā viņš spēlējas ar kodēšanu un pārslēdzas uz šaha galdu, kad viņam ir garlaicīgi, taču viņam patīk arī ik pa laikam atrauties no rutīnas. Viņa aizraušanās parādīt cilvēkiem ceļu par modernajām tehnoloģijām motivē viņu rakstīt vairāk.

Vairāk no Idowu Omisola

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai saņemtu tehniskos padomus, pārskatus, bezmaksas e-grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu