MongoDB – Indexare

Anunțuri

Indexurile sprijină rezolvarea eficientă a interogărilor. Fără indici, MongoDB trebuie să scaneze fiecare document dintr-o colecție pentru a selecta acele documente care corespund instrucțiunii de interogare. Această scanare este extrem de ineficientă și necesită ca MongoDB să proceseze un volum mare de date.

Indexurile sunt structuri de date speciale, care stochează o mică parte a setului de date într-o formă ușor de parcurs. Indexul stochează valoarea unui anumit câmp sau a unui set de câmpuri, ordonat după valoarea câmpului specificat în index.

Metoda createIndex()

Pentru a crea un index, trebuie să utilizați metoda createIndex() a MongoDB.

Sintaxa

Sintaxa de bază a metodei createIndex() este următoarea().

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

Aici cheia este numele câmpului pe care doriți să creați indexul și 1 este pentru ordinea crescătoare. Pentru a crea indexul în ordine descrescătoare trebuie să utilizați -1.

Exemplu

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

În metoda createIndex() puteți trece mai multe câmpuri, pentru a crea indexul pe mai multe câmpuri.

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

Această metodă acceptă, de asemenea, o listă de opțiuni (care sunt opționale). Lista este următoarea –

Parametru Tip Descriere
background Boolean Constituie indexul în fundal, astfel încât construirea unui index să nu blocheze alte activități ale bazei de date. Specificați true pentru a construi în fundal. Valoarea implicită este false.
unique Boolean Creează un index unic, astfel încât colecția nu va accepta inserarea de documente în care cheia sau cheile indexului se potrivesc cu o valoare existentă în index. Specificați true pentru a crea un index unic. Valoarea implicită este false.
name string Numele indexului. Dacă nu este specificat, MongoDB generează un nume de index prin concatenarea numelor câmpurilor indexate și a ordinii de sortare.
sparse Boolean Dacă este adevărat, indexul face referire numai la documentele cu câmpul specificat. Acești indici utilizează mai puțin spațiu, dar se comportă diferit în anumite situații (în special sortări). Valoarea implicită este false.
expireAfterSeconds integer Specifică o valoare, în secunde, ca TTL pentru a controla cât timp MongoDB păstrează documentele din această colecție.
weights document Ponderea este un număr cuprins între 1 și 99.999 și denotă importanța câmpului în raport cu celelalte câmpuri indexate în ceea ce privește scorul.
default_language string Pentru un index de text, limba care determină lista de cuvinte de oprire și regulile pentru stemmer și tokenizer. Valoarea implicită este English.
language_override string Pentru un index de text, specificați numele câmpului din document care conține, limba care să înlocuiască limba implicită. Valoarea implicită este language.

Metoda dropIndex()

Puteți renunța la un anumit index utilizând metoda dropIndex() a MongoDB.

Sintaxa

Sintaxa de bază a metodei DropIndex() este următoarea().

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

Aici cheia este numele fișierului pe care doriți să creați indexul și 1 este pentru ordinea crescătoare. Pentru a crea indexul în ordine descrescătoare trebuie să folosiți -1.

Exemplu

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

Metoda dropIndexes()

Această metodă șterge mai mulți indici (specificați) pe o colecție.

Sintaxa

Sintaxa de bază a metodei DropIndexes() este următoarea() –

>db.COLLECTION_NAME.dropIndexes()

Exemplu

Să presupunem că am creat 2 indexuri în colecția numită mycol, așa cum se arată mai jos –

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

Exemplul următor elimină indicii creați mai sus din mycol –

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

Metoda getIndexes()

Această metodă returnează descrierea tuturor indicilor din colecție.

Sintaxa

În cele ce urmează este sintaxa de bază a metodei getIndexes() –

db.COLLECTION_NAME.getIndexes()

Exemplu

Să presupunem că am creat 2 indexuri în colecția numită mycol așa cum se arată mai jos –

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

Exemplul următor recuperează toți indicii din colecția mycol –

> db.mycol.getIndexes()>
Anunțuri

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.