MongoDB Indeksering: createIndex() & dropIndex()
⚡ Smart opsummering
MongoDB Indekser gemmer et ordnet udsnit af en samlings felter, så forespørgsler kan finde dokumenter uden at scanne alle poster. Metoderne createIndex, getIndexes og dropIndex opbygger, viser og fjerner disse ydeevnekritiske strukturer.

Hvad er MongoDB Indekser?
Indekser er meget vigtige i enhver database, og med MongoDB Det er ikke anderledes. Ved brug af indekser, udførelse af forespørgsler i MongoDB bliver mere effektiv.
Hvis du havde en samling med tusindvis af dokumenter uden indeks, og du så søger for at finde bestemte dokumenter, så i et sådant tilfælde MongoDB skulle scanne hele samlingen for at finde dokumenterne. Men hvis du havde indekser, MongoDB ville bruge disse indekser til at begrænse antallet af dokumenter, der skulle søges i samlingen.
Indekser er særlige datasæt, der lagrer en delvis del af samlingens data. Da dataene er delvise, bliver det lettere at læse disse data. Dette delvise sæt lagrer værdien af et specifikt felt eller et sæt af felter, sorteret efter feltets værdi.
Forståelse af indvirkningen af indekser
Selvom introduktionen har vist, at indeks er gode til forespørgsler, kan for mange indeks forsinke andre operationer, såsom Indsæt-, Slet- og Opdater-operationerne.
Hvis der hyppigt udføres indsættelses-, sletnings- og opdateringshandlinger på dokumenter, skal indeksene ændres så ofte, hvilket blot ville være en overhead for samlingen.
Nedenstående eksempel viser, hvilke feltværdier der kan udgøre et indeks i en samling. Et indeks kan enten være baseret på blot ét felt i samlingen, eller det kan være baseret på flere felter i samlingen.
I eksemplet nedenfor er medarbejder-id'et "1" og medarbejderCode "AA" bruges til at indeksere dokumenterne i samlingen. Så når der foretages en søgning, vil disse indekser blive brugt til hurtigt og effektivt at finde de nødvendige dokumenter i samlingen.
Så selvom søgeforespørgslen er baseret på medarbejderenCode "AA", ville det dokument blive returneret.
Sådan opretter du indekser: createIndex()
Oprettelse af et indeks i MongoDB gøres ved at bruge oprette indeks fremgangsmåde.
Følgende eksempel viser, hvordan man tilføjer et indeks til en samling. Lad os antage, at vi har den samme Employee-samling, som har feltnavnene "Employeeid" og "EmployeeName".
db.Employee.createIndex({Employeeid:1})
Code Forklaring:
- oprette indeks metode bruges til at oprette et indeks baseret på dokumentets "Medarbejder".
- Parameteren "1" angiver, at når indekset oprettes med værdierne i feltet "Employeeid", skal de sorteres i stigende rækkefølge. Bemærk venligst, at dette er forskelligt fra _id-feltet (som entydigt identificerer hvert dokument), der MongoDB oprettes automatisk. Dokumenterne vil nu blive sorteret efter medarbejder-id og ikke _id-feltet.
Hvis kommandoen udføres korrekt, vises følgende output:
Output:
- numIndexesBefore: 1 angiver antallet af feltværdier i indekserne, før kommandoen blev kørt. Hver samling har _id-feltet, som også tæller som en feltværdi, så numIndexesBefore er 1.
- numIndexesAfter: 2 angiver antallet af feltværdier i indekserne efter at kommandoen blev kørt.
- Outputtet "ok: 1" angiver, at operationen var vellykket, og det nye indeks føjes til samlingen.
Ovenstående kode viser, hvordan man opretter et indeks baseret på én 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})
Metoden createIndex tager nu højde for flere feltværdier, hvilket vil medføre, at indekset oprettes baseret på "Employeeid" og "EmployeeName". Employeeid:1 og EmployeeName:1 angiver, at indekset skal oprettes på disse to feltværdier, hvor :1 angiver stigende rækkefølge. Dette kaldes et sammensat indeks.
Sådan finder du indekser: getIndexes()
At finde et indeks i MongoDB gøres ved at bruge getIndexes metode. Følgende eksempel viser, hvordan dette kan gøres:
db.Employee.getIndexes()
GetIndex-metoden bruges til at finde alle indekserne i en samling.
Hvis kommandoen udføres korrekt, vises følgende output:
Output:
Outputtet returnerer et dokument, der viser, at der er to indeks i samlingen: _id-feltet og Employeeid-feltet. :1 angiver, at feltværdierne i indekset er oprettet i stigende rækkefølge.
Sådan fjerner du indekser: dropIndex()
Fjernelse af et indeks i MongoDB gøres ved at bruge dropIndeks metode. Følgende eksempel viser, hvordan dette kan gøres:
db.Employee.dropIndex({Employeeid:1})
dropIndex-metoden tager de nødvendige feltværdier, som skal fjernes fra indekset.
Hvis kommandoen udføres korrekt, vises følgende output:
Output:
- nIndexesWas: 3 angiver antallet af feltværdier i indekserne, før kommandoen blev kørt. Hver samling har _id-feltet, som også tæller som en feltværdi.
- Ok: 1 output angiver, at operationen var vellykket, og feltet "Medarbejder" fjernes fra indekset.
For at fjerne alle indeksene i samlingen på én gang kan man bruge kommandoen dropIndexes. Følgende eksempel viser, hvordan dette kan gøres:
db.Employee.dropIndexes()
DropIndex-metoden vil slette alle indekser undtagen _id-indekset.
Hvis kommandoen udføres korrekt, vises følgende output:
Output:
- nIndexesWas: 2 angiver antallet af feltværdier i indekserne, før kommandoen blev kørt.
- Hver samling har _id-feltet, som også tæller som en feltværdi og ikke fjernes af MongoDB; det er, hvad denne besked angiver.
- Ok: 1-output angiver, at handlingen var vellykket.










