en indeks I MongoDB er en spesiell datastruktur som inneholder data for noen felt av dokumenter som indeksen er opprettet. Indekser forbedre hastigheten på søk operasjoner i databasen fordi i stedet for å søke i hele dokumentet, er søket utføres på indeksene som inneholder bare noen få felt. På den annen side, å ha for mange indekser kan hemme ytelsen til sett inn, oppdatere og slette operasjoner på grunn av den ekstra skrive og ekstra data plass som brukes av indekser.
Hvordan lage indeks I MongoDB
Syntaks:
db.collection_name.createIndex({field_name: 1 or -1})
verdien 1 er for stigende rekkefølge og -1 er for synkende rekkefølge.
for eksempel har jeg en samling studentdata
. Dokumentene i denne samlingen har følgende felt:
student_name, student_id og student_age
La oss si at jeg vil lage indeksen på student_name feltet i stigende rekkefølge:
db.studentdata.createIndex({student_name: 1})
Output:
{ "createdCollectionAutomatically" : false, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1}
Vi har opprettet indeksen på student_name som betyr at når noen søker i dokumentet basert på student_name, vil søket bli raskere fordi indeksen vil bli brukt til dette søket. Så dette er viktig å opprette indeksen på feltet som vil bli ofte søkte i en samling.
MongoDB-Finne indeksene i en samling
vi kan bruke getIndexes () metode for å finne alle indeksene opprettet på en samling. Syntaksen for denne metoden er:
db.collection_name.getIndexes()
så for å få indeksene til studentdata
samling, vil kommandoen være:
> db.studentdata.getIndexes()
utgangen viser at vi har to indekser i denne samlingen. Standardindeksen opprettet på _id og indeksen som vi har opprettet på student_name feltet.
MongoDB-Drop indekser i en samling
du kan enten slippe en bestemt indeks eller alle indeksene.
Slippe en bestemt indeks:
til dette formål brukes dropIndex () – metoden.
db.collection_name.dropIndex({index_name: 1})
lar slippe indeksen som vi har opprettet på student_name
felt i samlingen studentdata
. Kommandoen for dette:
db.studentdata.dropIndex({student_name: 1})
nIndexesWas: det viser hvor mange indekser som var der før denne kommandoen ble utført
ok: 1: dette betyr at kommandoen er utført med hell.
Slippe alle indeksene:
for å slippe alle indeksene i en samling, bruker vi dropIndexes () – metoden.
Syntaks av dropIndexs () metode:
db.collection_name.dropIndexes()
La oss si at vi vil slippe alle indeksene til studentdata
samling.
db.studentdata.dropIndexes()
meldingen «ikke-_id indekser droppet for innsamling» indikerer at standardindeksen _id fortsatt vil forbli og ikke kan slettes. Dette betyr at ved hjelp av denne metoden kan vi bare slippe indekser som vi har opprettet, vi kan ikke slippe standardindeksen opprettet på _id-feltet.