et indeks i MongoDB er en særlig datastruktur, der indeholder data fra få felter af dokumenter, som indekset er oprettet. Indekser forbedrer hastigheden af søgeoperationer i databasen, fordi i stedet for at søge i hele dokumentet udføres søgningen på indekserne, der kun indeholder få felter. På den anden side kan det at have for mange indekser hæmme ydeevnen for indsæt, Opdater og Slet operationer på grund af den ekstra skrivning og yderligere dataplads, der bruges af indekser.
Sådan oprettes indeks i MongoDB
syntaks:
db.collection_name.createIndex({field_name: 1 or -1})
værdien 1 er for stigende rækkefølge og -1 er for faldende rækkefølge.
for eksempel har jeg en samlingstudentdata
. Dokumenterne inde i denne samling har følgende felter:
student_name, student_id og student_age
lad os sige, at jeg vil oprette indekset på student_name-feltet i stigende rækkefølge:
db.studentdata.createIndex({student_name: 1})
Output:
{ "createdCollectionAutomatically" : false, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1}
Vi har oprettet indekset på student_name, hvilket betyder, at når nogen søger i dokumentet baseret på student_name, vil søgningen være hurtigere, fordi indekset vil blive brugt til denne søgning. Så dette er vigtigt at oprette indekset på det felt, der ofte søges i en samling.
MongoDB – find indekserne i en samling
Vi kan bruge getindeks() metode til at finde alle indekser oprettet på en samling. Syntaksen for denne metode er:
db.collection_name.getIndexes()
så for at få indekserne forstudentdata
samling, ville kommandoen være:
> db.studentdata.getIndexes()
udgangen viser, at vi har to indekser i denne samling. Standardindekset oprettet på _id og indekset, som vi har oprettet på student_name felt.
MongoDB – Drop indekser i en samling
Du kan enten droppe et bestemt indeks eller alle indekserne.
droppe et bestemt indeks:
til dette formål anvendes dropindeks () – metoden.
db.collection_name.dropIndex({index_name: 1})
lader slippe indekset, som vi har oprettet påstudent_name
felt i samlingenstudentdata
. Kommandoen for dette:
db.studentdata.dropIndex({student_name: 1})
nindekservar: det viser, hvor mange indekser der var der, før denne kommando blev udført
ok: 1: Dette betyder, at kommandoen udføres med succes.
droppe alle indekserne:
for at slippe alle indekserne i en samling bruger vi dropindeks() metode.
syntaks af dropindeks() metode:
db.collection_name.dropIndexes()
lad os sige, at vi vil droppe alle indekserne for studentdata
samling.
db.studentdata.dropIndexes()
meddelelsen “ikke-_id indekser faldt til indsamling” angiver, at standardindekset _id stadig forbliver og ikke kan droppes. Dette betyder, at vi ved hjælp af denne metode kun kan droppe indekser, som vi har oprettet, vi kan ikke droppe standardindekset oprettet på _id-feltet.