Som med enhver database, er indekser viktige datastrukturer i MongoDB. De fremmer enkle databasespørringer og lar deg lagre og ordne en del av samlingen din i unike felt. Indekser støtter også rekkeviddespørring uten problemer.

Hvis appen din bruker MongoDB, ønsker du å utnytte kraften til indekser for å gjøre spørringene dine raskere og mer effektive. Så hva er indekser i MongoDB, og hvordan kan du lage dem?

Hva er indekser i MongoDB?

Indekser i MongoDB lar deg prioritere noen felt i et dokument og gjøre dem om til spørringsparametere senere. Når du oppretter en samling, oppretter MongoDB en standard ID-indeks. Men du kan legge til flere hvis du har større spørsmål eller behov for arrangement.

Unike indekser forhindrer også duplikater under datainntasting. De kommer godt med for å avvise oppføringer som allerede finnes i databasen. Så du kan bruke unik indeksering på brukernavn og e-postfelt, for eksempel.

Indekser hjelper deg å fange spesifikt det du ønsker ved å bruke det definerte spørringsformatet i ønsket mengde uten å skanne en hel samling. Når du oppretter en indeks, kan du spesifisere hvordan du vil at dataene dine skal sorteres når du spør etter dem.

instagram viewer

Hvis du for eksempel bestemmer deg for å sortere datapunkter etter inngangsdatoer uten å bruke en indeks, vil du vanligvis oppgi søkekriterier og sorteringsrekkefølge.

La oss si at du vil ordne aldersgrupper høyere enn et visst antall etter synkende dato for oppføringer. Spørsmålet ditt ser vanligvis slik ut:

db.collectionName.find({alder: {$gt: 50}}).sort({dato: -1})

Men hvis du hadde en indeks på inngangsdatoene, trenger du bare å oppgi søkekriteriene. Dette er fordi du allerede ville ha sortert datoen synkende mens du opprettet indeksen.

I så fall blir spørringen ovenfor:

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

Hvordan lage en indeks i MongoDB

Du kan lage indekser i MongoDB ved hjelp av det innebygde shell-grensesnittet. Så det er det vi skal bruke i denne opplæringen.

Likevel eksisterer ikke indekser alene. Det må du ha opprettet en database og en samling før du kan lage en indeks.

Som vi tidligere nevnte, er en fremtredende egenskap ved indeksering at den lar deg spesifisere sorteringskriterier under indeksoppretting.

For eksempel ser en indeks som ordner alder i omvendt rekkefølge slik ut:

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

Det negative heltall (-1) i koden ber MongoDB om å ordne alder i omvendt rekkefølge når du spør etter data ved hjelp av alder indeks. Dermed trenger du kanskje ikke spesifisere en sorteringsrekkefølge under spørringer siden indeksen håndterer det allerede.

For å lage en indeks for det samme feltet stigende, erstatt -1 med 1:

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

Selv om det er andre indekstyper i MongoDB, er dette hvordan du lager enkelt- og sammensatte former - siden de er de mest brukte.

Men før vi fortsetter, sørg for at du har gjort det sette opp en MongoDB server på din PC. Hvis du allerede har gjort det, åpne MongoDB-skallet og følg med.

Lag en enkelt indeks i MongoDB

Enkel indeksering i MongoDB er enkel. For å starte, velg en database som allerede inneholder samlinger.

Si at databasenavnet vårt er MUO:

bruk MUO

Når du har valgt en database, bruk createIndex() kommando i skallet for å lage en enkelt indeks.

For eksempel, for å opprette en enkelt brukernavnindeks i en samling og bruke den til å spørre i omvendt rekkefølge:

db.collectionName.createIndex({brukernavn: -1})

Multikey-indeksering i MongoDB

Multikey-indekser kommer godt med for å indeksere et felt i en kompleks datamatrise. For eksempel kan en samling inneholde komplekse data fra brukere med informasjonen deres i en annen matrise. Si for eksempel navn, høyde og alder.

Du kan lage en multikey-indeks på høyden til hver bruker i den matrisen slik:

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

De høyde i koden ovenfor er en undergruppe av bruker felt.

Lag en sammensatt indeks

En sammensatt indeks inneholder mer enn én indeks. For å lage en sammensatt indeks over adresse og produkttype på en kundesamling, for eksempel:

db.customer.createIndex({adresse: 1, produkter: 1})

Siden du ikke oppga et navn mens du opprettet indeksen ovenfor, oppretter MongoDB en som standard. Men det skiller navnet på hver indeks med et understrek. Så det er mindre lesbart, spesielt hvis du har mer enn to indekser i en sammensetning.

Slik spesifiserer du et navn når du oppretter en sammensatt indeks:

db.customers.createIndex({sted: 1, produkter: 1, vekt: -1}, {navn: "myCompundIndex"})

Få alle indekser i en samling

Slik viser du alle indeksene i en samling:

db.collectionName.getIndex()

Koden ovenfor gir ut alle indeksene i en navngitt samling.

Organiser databasen din med indekser

Indeksering i MongoDB reduserer kjøretidsforsinkelse når du utfører samtidige spørringer. I tillegg hjelper de deg med å organisere databasen og gjøre den mer tilgjengelig. Som du har sett, er det tross alt ikke komplisert å lage indekser i MongoDB. Eksemplene her er nok til å komme i gang med indeksoppretting. Ikke desto mindre, for å se indeksene dine i praksis, må du vite hvordan spørring fungerer i MongoDB.

Hvordan utføre CRUD-operasjoner i MongoDB

Å bli kjent med MongoDB er vanskelig. Gå i bakken med CRUD.

Les Neste

DelekvitringE-post
Relaterte temaer
  • Programmering
  • Python
  • Programmering
  • database
Om forfatteren
Idowu Omisola (119 artikler publisert)

Idowu er lidenskapelig opptatt av alt smart teknologi og produktivitet. På fritiden leker han med koding og bytter til sjakkbrettet når han kjeder seg, men han elsker også å bryte ut av rutinene en gang i blant. Hans lidenskap for å vise folk veien rundt moderne teknologi motiverer ham til å skrive mer.

Mer fra Idowu Omisola

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!

Klikk her for å abonnere