Som med enhver database er indekser vigtige datastrukturer i MongoDB. De fremmer nemme databaseforespørgsler og lader dig gemme og arrangere en del af din samling i unikke felter. Indekser understøtter også rækkeviddeforespørgsel uden problemer.

Hvis din app bruger MongoDB, ønsker du at udnytte kraften i indekser til at gøre dine forespørgsler hurtigere og mere effektive. Så hvad er indekser i MongoDB, og hvordan kan du oprette dem?

Hvad er indekser i MongoDB?

Indekser i MongoDB giver dig mulighed for at prioritere nogle felter i et dokument og omdanne dem til forespørgselsparametre senere. Når du opretter en samling, opretter MongoDB et standard-id-indeks. Men du kan tilføje flere, hvis du har større forespørgsler eller arrangementsbehov.

Unikke indekser forhindrer også dubletter under dataindtastning. De er nyttige til at afvise poster, der allerede findes i databasen. Så du kan f.eks. bruge unik indeksering på brugernavne og e-mail-felter.

Indekser hjælper dig med at få fat i det, du vil have, ved at bruge dit definerede forespørgselsformat i den nødvendige mængde uden at scanne en hel samling. Når du opretter et indeks, kan du angive, hvordan du vil have dine data sorteret, når du forespørger på det.

instagram viewer

For eksempel, hvis du beslutter dig for at sortere datapunkter efter deres indtastningsdatoer uden at bruge et indeks, vil du typisk angive forespørgselskriterier og sorteringsrækkefølge.

Lad os sige, at du vil arrangere aldersgrupper, der er højere end et bestemt antal, efter deres faldende dato for tilmeldinger. Din forespørgsel ser typisk sådan ud:

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

Men hvis du havde et indeks på indtastningsdatoerne, skulle du kun angive forespørgselskriterierne. Dette skyldes, at du allerede ville have sorteret datoen faldende, mens du oprettede indekset.

I så fald bliver ovenstående forespørgsel:

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

Sådan opretter du et indeks i MongoDB

Du kan oprette indekser i MongoDB ved hjælp af dens indbyggede shell-grænseflade. Så det er det, vi vil bruge i denne tutorial.

Ikke desto mindre eksisterer indekser ikke alene. Det må du have oprettet en database og en samling før du kan oprette et indeks.

Som vi tidligere nævnte, er et fremtrædende træk ved indeksering, at det lader dig specificere sorteringskriterier under oprettelse af indeks.

For eksempel ser et indeks, der arrangerer alder i omvendt rækkefølge, således ud:

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

Det negative heltal (-1) i koden fortæller MongoDB at arrangere alder i omvendt rækkefølge, når du forespørger data ved hjælp af alder indeks. Derfor behøver du muligvis ikke angive en sorteringsrækkefølge under forespørgsler, da indekset allerede håndterer det.

For at oprette et indeks over det samme felt stigende, skal du erstatte -1 med 1:

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

Selvom der er andre indekstyper i MongoDB, er det sådan, man opretter de enkelte og sammensatte former - da de er de mest brugte.

Men før vi går videre, så sørg for, at du har oprette en MongoDB server på din pc. Hvis du allerede har gjort det, skal du åbne MongoDB-skallen og følge med.

Opret et enkelt indeks i MongoDB

Enkeltindeksering i MongoDB er ligetil. For at starte skal du vælge en database, der allerede indeholder samlinger.

Sig, at vores databasenavn er MUO:

brug MUO

Når du har valgt en database, skal du bruge createIndex() kommando i skallen for at oprette et enkelt indeks.

For eksempel for at oprette et enkelt brugernavnindeks i en samling og bruge det til at forespørge i omvendt rækkefølge:

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

Multikey-indeksering i MongoDB

Multikey-indekser er nyttige til at indeksere et felt i et komplekst dataarray. For eksempel kan en samling indeholde komplekse data fra brugere med deres oplysninger i et andet array. Sig f.eks. navn, højde og alder.

Du kan oprette et multikey-indeks på højden af ​​hver bruger i det array på denne måde:

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

Det højde i ovenstående kode er en delmængde af bruger Mark.

Opret et sammensat indeks

Et sammensat indeks indeholder mere end ét indeks. For at oprette et sammensat indeks over adresse og produkttype på en kundesamling, for eksempel:

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

Da du ikke angav et navn, mens du oprettede ovenstående indeks, opretter MongoDB et som standard. Men det adskiller navnet på hvert indeks med en understregning. Så det er mindre læsbart, især hvis du har mere end to indekser i en sammensætning.

Sådan angiver du et navn, når du opretter et sammensat indeks:

db.customers.createIndex({placering: 1, produkter: 1, vægt: -1}, {navn: "myCompundIndex"})

Få alle indeks i en samling

Sådan får du vist alle indekser i en samling:

db.collectionName.getIndexes()

Ovenstående kode udsender alle indekserne i en navngivet samling.

Organiser din database med indekser

Indeksering i MongoDB reducerer runtime latency, når der udføres samtidige forespørgsler. Derudover hjælper de dig med at organisere din database og gøre den mere tilgængelig. Som du har set, er det trods alt ikke kompliceret at oprette indekser i MongoDB. Eksemplerne her er nok til at komme i gang med oprettelse af indeks. Ikke desto mindre, for at se dine indekser i praksis, skal du vide, hvordan forespørgsler fungerer i MongoDB.

Sådan udføres CRUD-operationer i MongoDB

Det er svært at lære MongoDB at kende. Slå til jorden med CRUD.

Læs Næste

DelTweetE-mail
Relaterede emner
  • Programmering
  • Python
  • Programmering
  • database
Om forfatteren
Idowu Omisola (119 artikler udgivet)

Idowu brænder for alt smart teknologi og produktivitet. I sin fritid leger han med kodning og skifter til skakbrættet, når han keder sig, men han elsker også at bryde ud af rutinen en gang imellem. Hans passion for at vise folk vejen rundt om moderne teknologi motiverer ham til at skrive mere.

Mere fra Idowu Omisola

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for tekniske tips, anmeldelser, gratis e-bøger og eksklusive tilbud!

Klik her for at abonnere