MongoDB Indexare: createIndex() și dropIndex()
⚡ Rezumat inteligent
MongoDB Indexurile stochează un subset ordonat al câmpurilor unei colecții, astfel încât interogările să poată localiza documente fără a scana fiecare înregistrare. Metodele createIndex, getIndex și dropIndex construiesc, listează și elimină aceste structuri critice pentru performanță.

Care sunt MongoDB Indici?
Indecșii sunt foarte importanți în orice bază de date, și cu MongoDB Nu este diferit. Cu utilizarea indexurilor, efectuarea de interogări în MongoDB devine mai eficient.
Dacă ați avea o colecție cu mii de documente fără indexuri și apoi ați căuta anumite documente, atunci într-un astfel de caz MongoDB ar trebui să scaneze întreaga colecție pentru a găsi documentele. Dar dacă ai avea indici, MongoDB ar folosi acești indici pentru a limita numărul de documente care trebuiau căutate în colecție.
Indexurile sunt seturi speciale de date care stochează o parte din datele colecției. Deoarece datele sunt parțiale, devine mai ușor de citit. Acest set parțial stochează valoarea unui anumit câmp sau a unui set de câmpuri, ordonate după valoarea câmpului.
Înțelegerea impactului indicilor
Chiar dacă introducerea a arătat că indexurile sunt bune pentru interogări, prea multe indexuri pot încetini alte operațiuni, cum ar fi operațiunile de inserare, ștergere și actualizare.
Dacă există operațiuni frecvente de inserare, ștergere și actualizare a documentelor, atunci indexurile ar trebui să se schimbe des, ceea ce ar reprezenta o suprasarcină pentru colecție.
Exemplul de mai jos arată ce valori de câmp ar putea constitui un index într-o colecție. Un index se poate baza fie pe un singur câmp din colecție, fie pe mai multe câmpuri din colecție.
În exemplul de mai jos, ID-ul angajatului „1” șiCode „AA” sunt folosite pentru indexarea documentelor din colecție. Așadar, atunci când se efectuează o căutare prin interogare, aceste indexuri vor fi utilizate pentru a găsi rapid și eficient documentele necesare în colecție.
Deci, chiar dacă interogarea de căutare se bazează pe AngajatCode „AA”, documentul respectiv ar fi returnat.
Cum se creează indecși: createIndex()
Crearea unui index în MongoDB se realizează prin utilizarea createIndex metodă.
Următorul exemplu arată cum se adaugă un index la o colecție. Să presupunem că avem aceeași colecție Employee, care are numele de câmp „Employeeid” și „EmployeeName”.
db.Employee.createIndex({Employeeid:1})
Code Explicaţie:
- createIndex metoda este utilizată pentru a crea un index bazat pe „Employeeid” al documentului.
- Parametrul „1” indică faptul că, atunci când indexul este creat cu valorile câmpului „Employeeid”, acestea trebuie sortate în ordine crescătoare. Rețineți că acest lucru este diferit de câmpul _id (care identifică în mod unic fiecare document) care MongoDB se creează automat. Documentele vor fi acum sortate în funcție de câmpul Employeeid și nu de câmpul _id.
Dacă comanda este executată cu succes, va fi afișat următorul rezultat:
ieșire:
- numIndexesBefore: 1 indică numărul de valori ale câmpurilor din indexuri înainte de rularea comenzii. Fiecare colecție are câmpul _id, care contează și ca valoare a câmpului, deci numIndexesBefore este 1.
- numIndexesAfter: 2 indică numărul de valori de câmp din indexuri după executarea comenzii.
- Ieșirea „ok: 1” specifică faptul că operația a avut succes și noul index este adăugat la colecție.
Codul de mai sus arată cum se creează un index bazat pe o valoare a unui câmp, dar se poate crea și un index bazat pe mai multe valori de câmp. Următorul exemplu arată cum se poate face acest lucru:
db.Employee.createIndex({Employeeid:1, EmployeeName:1})
Metoda createIndex ia acum în considerare mai multe valori de câmp, ceea ce va determina crearea indexului pe baza valorilor „Employeeid” și „EmployeeName”. Employeeid:1 și EmployeeName:1 indică faptul că indexul ar trebui creat pe baza acestor două valori de câmp, unde :1 indică ordinea crescătoare. Aceasta este cunoscută sub numele de index compus.
Cum se găsesc indexuri: getIndexes()
Găsirea unui index în MongoDB se realizează prin utilizarea obțineIndexuri metodă. Următorul exemplu arată cum se poate face acest lucru:
db.Employee.getIndexes()
Metoda getIndexes este folosită pentru a găsi toți indecșii dintr-o colecție.
Dacă comanda este executată cu succes, va fi afișat următorul rezultat:
ieșire:
Rezultatul returnează un document care arată că există doi indexuri în colecție: câmpul _id și câmpul Employeeid. :1 indică faptul că valorile câmpurilor din index sunt create în ordine crescătoare.
Cum se elimină indexurile: dropIndex()
Eliminarea unui index în MongoDB se realizează prin utilizarea dropIndex metodă. Următorul exemplu arată cum se poate face acest lucru:
db.Employee.dropIndex({Employeeid:1})
Metoda dropIndex preia valorile câmpurilor obligatorii care trebuie eliminate din index.
Dacă comanda este executată cu succes, va fi afișat următorul rezultat:
ieșire:
- Valoarea nIndexesWas: 3 indică numărul de valori ale câmpurilor din indexuri înainte de rularea comenzii. Fiecare colecție are câmpul _id, care contează și ca valoare a câmpului.
- Ieșirea ok: 1 specifică că operația a avut succes, iar câmpul „Employeeid” este eliminat din index.
Pentru a elimina toți indexurile dintr-o dată din colecție, se poate utiliza comanda dropIndexes. Următorul exemplu arată cum se poate face acest lucru:
db.Employee.dropIndexes()
Metoda dropIndexes va elimina toți indecșii, cu excepția indexului _id.
Dacă comanda este executată cu succes, va fi afișat următorul rezultat:
ieșire:
- nIndexesWas: 2 indică numărul de valori de câmp din indexuri înainte de rularea comenzii.
- Fiecare colecție are câmpul _id, care contează și ca valoare a câmpului și nu va fi eliminat de MongoDB; asta indică acest mesaj.
- Ieșirea ok: 1 specifică că operația a avut succes.










