MongoDB – Indeksering

Anbefalinger

Indekser understøtter en effektiv løsning af forespørgsler. Uden indekser skal MongoDB scanne hvert dokument i en samling for at vælge de dokumenter, der passer til forespørgselsanvisningen. Denne scanning er meget ineffektiv og kræver, at MongoDB behandler en stor datamængde.

Indekser er særlige datastrukturer, der gemmer en lille del af datasættet i en form, der er let at gennemskue. Indekset gemmer værdien af et bestemt felt eller et sæt af felter, ordnet efter værdien af feltet som angivet i indekset.

Metoden createIndex()

For at oprette et indeks skal du bruge metoden createIndex() i MongoDB.

Syntaks

Den grundlæggende syntaks for createIndex()-metoden er som følger().

>db.COLLECTION_NAME.createIndex({KEY:1})

Her er key navnet på det felt, som du ønsker at oprette indeks på, og 1 er for stigende rækkefølge. Hvis du vil oprette indeks i faldende rækkefølge, skal du bruge -1.

Eksempel

>db.mycol.createIndex({"title":1}){"createdCollectionAutomatically" : false,"numIndexesBefore" : 1,"numIndexesAfter" : 2,"ok" : 1}>

I metoden createIndex() kan du videregive flere felter for at oprette indeks på flere felter.

>db.mycol.createIndex({"title":1,"description":-1})>

Denne metode accepterer også en liste over valgmuligheder (som er valgfrie). Følgende er listen –

Parameter Type Beskrivelse
background Boolean Bygger indekset i baggrunden, så opbygningen af et indeks ikke blokerer for andre databaseaktiviteter. Angiv true for at opbygge i baggrunden. Standardværdien er false.
unique Boolean Opret et unikt indeks, så samlingen ikke accepterer indsættelse af dokumenter, hvor indeksnøglen eller -nøglerne svarer til en eksisterende værdi i indekset. Angiv true for at oprette et unikt indeks. Standardværdien er false.
name string Navnet på indekset. Hvis det ikke er angivet, genererer MongoDB et indeksnavn ved at sammenkæde navnene på de indekserede felter og sorteringsrækkefølgen.
sparse Boolean Hvis det er sandt, henviser indekset kun til dokumenter med det angivne felt. Disse indekser bruger mindre plads, men opfører sig anderledes i nogle situationer (især sortering). Standardværdien er false.
expireAfterSeconds integer Angiver en værdi i sekunder som en TTL for at styre, hvor længe MongoDB beholder dokumenter i denne samling.
vægt dokument Vægten er et tal fra 1 til 99.999 og angiver feltets betydning i forhold til de andre indekserede felter med hensyn til pointen.
default_language string For et tekstindeks, det sprog, der bestemmer listen over stopord og reglerne for stemmer og tokenizer. Standardværdien er engelsk.
language_override string Angiv for et tekstindeks navnet på det felt i dokumentet, der indeholder, det sprog, der skal tilsidesætte standardsproget. Standardværdien er language.

DropIndex()-metoden

Du kan droppe et bestemt indeks ved hjælp af dropIndex()-metoden i MongoDB.

Syntaks

Den grundlæggende syntaks for DropIndex()-metoden er som følger().

>db.COLLECTION_NAME.dropIndex({KEY:1})

Her er key navnet på den fil, som du ønsker at oprette indeks på, og 1 er for stigende rækkefølge. Hvis du vil oprette indeks i faldende rækkefølge, skal du bruge -1.

Eksempel

> db.mycol.dropIndex({"title":1}){"ok" : 0,"errmsg" : "can't find index with key: { title: 1.0 }","code" : 27,"codeName" : "IndexNotFound"}

DropIndexes() metoden

Denne metode sletter flere (angivne) indekser på en samling.

Syntaks

Den grundlæggende syntaks for DropIndexes()-metoden er som følger() –

>db.COLLECTION_NAME.dropIndexes()

Eksempel

Antag, at vi har oprettet 2 indekser i den navngivne mycol-samling som vist nedenfor –

> db.mycol.createIndex({"title":1,"description":-1})

Følgende eksempel fjerner de ovenfor oprettede indekser i mycol –

>db.mycol.dropIndexes({"title":1,"description":-1}){ "nIndexesWas" : 2, "ok" : 1 }>

Metoden getIndexes()

Denne metode returnerer beskrivelsen af alle indekser i samlingen.

Syntaks

Følgende er den grundlæggende syntaks for getIndexes()-metoden –

db.COLLECTION_NAME.getIndexes()

Eksempel

Antag, at vi har oprettet 2 indekser i mycol samling som vist nedenfor –

> db.mycol.createIndex({"title":1,"description":-1})

Følgende eksempel henter alle indekser i samlingen mycol –

> db.mycol.getIndexes()>
Advertisements

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.