MongoDB-indekseringsvejledning - createIndex (), dropindex () Eksempel

Indholdsfortegnelse:

Anonim

Indekser er meget vigtige i enhver database, og med MongoDB er det ikke anderledes. Med brugen af ​​indekser bliver udførelse af forespørgsler i MongoDB mere effektiv.

Hvis du havde en samling med tusindvis af dokumenter uden indekser, og derefter spurgte du om at finde bestemte dokumenter, så ville MongoDB i et sådant tilfælde skulle scanne hele samlingen for at finde dokumenterne. Men hvis du havde indekser, ville MongoDB bruge disse indekser til at begrænse antallet af dokumenter, der skulle søges i samlingen.

Indekser er specielle datasæt, der gemmer en del af samlingens data. Da dataene er delvise, bliver det lettere at læse disse data. Dette delsæt gemmer værdien for et bestemt felt eller et sæt felter, der er ordnet efter feltets værdi.

I denne vejledning lærer du -

  • Forståelse af indeksernes virkning
  • Sådan oprettes indekser: createIndex ()
  • Sådan finder du indekser: getindexes ()
  • Sådan slettes indekser: dropindex ()

Forståelse af indeksernes virkning

Nu selvom vi fra introduktionen har set, at indekser er gode til forespørgsler, men at have for mange indekser kan bremse andre operationer som f.eks. Indsættelsen, sletningen og opdateringen.

Hvis der ofte sker indsættelses-, sletnings- og opdateringshandlinger udført på dokumenter, skal indekserne ofte ændre det, hvilket bare ville være en overhead for samlingen.

Nedenstående eksempel viser et eksempel på, hvilke feltværdier der kan udgøre et indeks i en samling. Et indeks kan enten være baseret på kun et felt i samlingen, eller det kan være baseret på flere felter i samlingen.

I eksemplet nedenfor bruges medarbejder-id "1" og medarbejderkode "AA" til at indeksere dokumenterne i samlingen. Så når der foretages en forespørgsel, bruges disse indekser til hurtigt og effektivt at finde de krævede dokumenter i samlingen.

Så selvom søgeforespørgslen er baseret på EmployeeCode "AA", returneres dette dokument.

Sådan oprettes indekser: createIndex ()

Oprettelse af et indeks i MongoDB sker ved hjælp af " createIndex " -metoden.

Følgende eksempel viser, hvordan du tilføjer indeks til samlingen. Lad os antage, at vi har vores samme medarbejdersamling, som har feltnavne "Medarbejder-id" og "Medarbejdernavn".

db.Employee.createIndex({Employeeid:1})

Kode Forklaring:

  1. Metoden createIndex bruges til at oprette et indeks baseret på dokumentet "Medarbejder- id ".
  2. Parameteren '1' angiver, at når indekset oprettes med værdierne "Medarbejder-id", skal de sorteres i stigende rækkefølge. Bemærk, at dette er forskelligt fra _id-feltet (id-feltet bruges til entydigt at identificere hvert dokument i samlingen), som oprettes automatisk i samlingen af ​​MongoDB. Dokumenterne sorteres nu efter medarbejderid og ikke _id-feltet.

Hvis kommandoen udføres med succes, vises følgende output:

Produktion:

  1. NumIndexesBefore: 1 angiver antallet af feltværdier (de faktiske felter i samlingen), der var der i indekserne, før kommandoen blev kørt. Husk, at hver samling har _id-feltet, som også tæller som en feltværdi for indekset. Da _id-indeksfeltet er en del af samlingen, da det oprindeligt blev oprettet, er værdien af ​​numIndexesBefore 1.
  2. NumIndexesAfter: 2 angiver antallet af feltværdier, der var der i indekserne, efter at kommandoen blev kørt.
  3. Her angiver "ok: 1" -outputtet, at handlingen var vellykket, og det nye indeks føjes til samlingen.

Ovenstående kode viser, hvordan man opretter et indeks baseret på en feltværdi, men man kan også oprette et indeks baseret på flere feltværdier.

Følgende eksempel viser, hvordan dette kan gøres;

db.Employee.createIndex({Employeeid:1, EmployeeName:1])

Kode Forklaring:

  1. Metoden createIndex tager nu højde for flere feltværdier, som nu får indekset til at blive oprettet baseret på "Medarbejder-id" og "Medarbejdernavn". Medarbejder-id: 1 og Medarbejdernavn: 1 angiver, at indekset skal oprettes på disse 2 feltværdier med: 1, der angiver, at det skal være i stigende rækkefølge.

Sådan finder du indekser: getindexes ()

At finde et indeks i MongoDB sker ved hjælp af metoden "getIndexes" .

Følgende eksempel viser, hvordan dette kan gøres;

db.Employee.getIndexes()

Kode Forklaring:

  1. Metoden getIndexes bruges til at finde alle indekserne i en samling.

Hvis kommandoen udføres med succes, vises følgende output:

Produktion:

  1. Outputtet returnerer et dokument, der bare viser, at der er 2 indekser i samlingen, som er feltet _id, og det andet er feltet Medarbejder-id. : 1 angiver, at feltværdierne i indekset oprettes i stigende rækkefølge.

Sådan slettes indekser: dropindex ()

Fjernelse af et indeks i MongoDB sker ved hjælp af dropIndex-metoden.

Følgende eksempel viser, hvordan dette kan gøres;

db.Employee.dropIndex(Employeeid:1)

Kode Forklaring:

  1. DropIndex-metoden tager de krævede feltværdier, der skal fjernes fra indekset.

Hvis kommandoen udføres med succes, vises følgende output:

Produktion:

  1. NIndexesWas: 3 angiver antallet af feltværdier, der var der i indekserne, før kommandoen blev kørt. Husk, at hver samling har _id-feltet, som også tæller som en feltværdi for indekset.
  2. OK: 1-output angiver, at handlingen var vellykket, og feltet "Medarbejder" fjernes fra indekset.

For at fjerne alle indekserne på én gang i samlingen kan man bruge kommandoen dropIndexes.

Følgende eksempel viser, hvordan dette kan gøres.

db.Employee.dropIndex()

Kode Forklaring:

  1. Metoden dropIndexes vil slippe alle indekserne undtagen _id-indekset.

Hvis kommandoen udføres med succes, vises følgende output:

Produktion:

  1. NIndexesWas: 2 angiver antallet af feltværdier, der var der i indekserne, før kommandoen blev kørt.
  2. Husk igen, at hver samling har _id-feltet, som også tæller som en feltværdi for indekset, og det vil ikke blive fjernet af MongoDB, og det er det, denne meddelelse indikerer.
  3. OK: 1 output angiver, at handlingen var vellykket.

Resumé

  • Definition af indekser er vigtige for hurtigere og effektiv søgning efter dokumenter i en samling.
  • Indeks kan oprettes ved hjælp af createIndex-metoden. Indeks kan oprettes på kun ét felt eller flere feltværdier.
  • Indeks kan findes ved hjælp af getIndexes-metoden.
  • Indeks kan fjernes ved hjælp af dropIndex til enkeltindekser eller dropIndexes til at droppe alle indekser.