MongoDB Indekseerimine: createIndex() ja dropIndex()
โก Nutikas kokkuvรตte
MongoDB Indeksid salvestavad kollektsiooni vรคljade jรคrjestatud alamhulga, et pรคringud saaksid dokumente leida ilma iga kirjet skannimata. Meetodid createIndex, getIndexes ja dropIndex loovad, loetlevad ja eemaldavad need jรตudluskriitilised struktuurid.

Mis on MongoDB Indeksid?
Indeksid on vรคga olulised igas andmebaasis ja koos MongoDB see pole teisiti. Indeksite abil pรคringute tegemine MongoDB muutub tรตhusamaks.
Kui teil on tuhandete dokumentidega kogu, millel pole indekseid, ja seejรคrel otsite teatud dokumente, siis sellisel juhul MongoDB peaks dokumentide leidmiseks skannima kogu kollektsiooni. Aga kui teil oleks indeksid, MongoDB kasutaks neid indekseid kogust otsitavate dokumentide arvu piiramiseks.
Indeksid on spetsiaalsed andmekogumid, mis salvestavad osa kogumi andmetest. Kuna andmed on osalised, on neid lihtsam lugeda. See osakogum salvestab konkreetse vรคlja vรตi vรคljade komplekti vรครคrtuse, mis on jรคrjestatud vรคlja vรครคrtuse jรคrgi.
Indekside mรตju mรตistmine
Kuigi sissejuhatuses on nรคidatud, et indeksid sobivad pรคringute jaoks hรคsti, vรตib liiga paljude indeksite olemasolu aeglustada teisi toiminguid, nรคiteks lisamis-, kustutamis- ja vรคrskendamistoiminguid.
Kui dokumentidega tehakse sageli lisamis-, kustutamis- ja vรคrskendamistoiminguid, peaksid indeksid sama tihti muutuma, mis oleks kogumile lihtsalt lisakoormus.
Allolev nรคide demonstreerib, millised vรคljavรครคrtused vรตivad moodustada kollektsiooni indeksi. Indeks vรตib pรตhineda kas ainult รผhel kollektsiooni vรคljal vรตi mitmel kollektsiooni vรคljal.
Allolevas nรคites on tรถรถtaja ID โ1โ ja tรถรถtajaCode โAAโ indekseid kasutatakse kollektsiooni dokumentide indekseerimiseks. Seega, kui tehakse pรคringotsing, kasutatakse neid indekseid vajalike dokumentide kiireks ja tรตhusaks leidmiseks kollektsioonist.
Seega isegi kui otsingupรคring pรตhineb tรถรถtajalCode โAAโ, see dokument tagastatakse.
Kuidas indekseid luua: createIndex()
Indeksi loomine MongoDB tehakse kasutades looIndeks meetod.
Jรคrgnev nรคide demonstreerib, kuidas lisada indeks kollektsioonile. Oletame, et meil on sama Employee kollektsioon, mille vรคljanimed on โEmployeeidโ ja โEmployeeNameโ.
db.Employee.createIndex({Employeeid:1})
Code Selgitus:
- . looIndeks meetodit kasutatakse indeksi loomiseks dokumendi โTรถรถtajaโ alusel.
- Parameeter โ1โ nรคitab, et kui indeks luuakse vรคlja โTรถรถtaja idโ vรครคrtustega, tuleks need sorteerida kasvavas jรคrjekorras. Pange tรคhele, et see erineb vรคljast _id (mis identifitseerib iga dokumendi unikaalselt), mis MongoDB loob automaatselt. Dokumendid sorteeritakse nรผรผd tรถรถtaja ID, mitte _id vรคlja jรคrgi.
Kui kรคsk tรคidetakse edukalt, kuvatakse jรคrgmine vรคljund:
Vรคljund:
- โnumIndexesBefore: 1โ nรคitab indeksites olevate vรคljavรครคrtuste arvu enne kรคsu kรคivitamist. Igal kollektsioonil on vรคli โ_idโ, mis loetakse samuti vรคljavรครคrtuseks, seega on โnumIndexesBeforeโ 1.
- numIndexesAfter: 2 nรคitab vรคljavรครคrtuste arvu indeksites pรคrast kรคsu kรคivitamist.
- Vรคljund โok: 1โ nรคitab, et toiming oli edukas ja uus indeks lisatakse kollektsioonile.
รlaltoodud kood nรคitab, kuidas luua indeks รผhe vรคljavรครคrtuse pรตhjal, aga indeksi saab luua ka mitme vรคljavรครคrtuse pรตhjal. Jรคrgmine nรคide nรคitab, kuidas seda teha:
db.Employee.createIndex({Employeeid:1, EmployeeName:1})
Meetod createIndex vรตtab nรผรผd arvesse mitut vรคljavรครคrtust, mille tulemusel luuakse indeks โEmployeeIDโ ja โEmployeeNameโ pรตhjal. Employeeid:1 ja EmployeeName:1 nรคitavad, et indeks tuleks luua nende kahe vรคljavรครคrtuse pรตhjal, kus :1 nรคitab kasvavat jรคrjekorda. Seda nimetatakse liitindeksiks.
Kuidas leida indekseid: getIndexes()
Indeksi leidmine MongoDB tehakse kasutades getIndexes meetod. Jรคrgmine nรคide nรคitab, kuidas seda teha saab:
db.Employee.getIndexes()
Kogust kรตigi indeksite leidmiseks kasutatakse meetodit getIndexes.
Kui kรคsk tรคidetakse edukalt, kuvatakse jรคrgmine vรคljund:
Vรคljund:
Vรคljund tagastab dokumendi, mis nรคitab, et kollektsioonis on kaks indeksit: vรคli _id ja vรคli Employeeid. :1 nรคitab, et indeksi vรคljavรครคrtused luuakse kasvavas jรคrjekorras.
Indeksite eemaldamine: dropIndex()
Indeksi eemaldamine MongoDB tehakse kasutades tilkindeks meetod. Jรคrgmine nรคide nรคitab, kuidas seda teha saab:
db.Employee.dropIndex({Employeeid:1})
dropIndex meetod vรตtab vajalikud vรคljavรครคrtused, mis tuleb indeksist eemaldada.
Kui kรคsk tรคidetakse edukalt, kuvatakse jรคrgmine vรคljund:
Vรคljund:
- nIndexesWas: 3 nรคitab indeksites olevate vรคljavรครคrtuste arvu enne kรคsu kรคivitamist. Igal kollektsioonil on vรคli _id, mis loetakse samuti vรคljavรครคrtuseks.
- Vรคljund ok: 1 tรคpsustab, et toiming oli edukas ja vรคli "Tรถรถtaja tunnustus" eemaldatakse registrist.
Kรตikide indeksite korraga eemaldamiseks kollektsioonist saab kasutada kรคsku dropIndexes. Jรคrgmine nรคide demonstreerib, kuidas seda teha:
db.Employee.dropIndexes()
Meetod dropIndexes tรผhistab kรตik indeksid, vรคlja arvatud indeks _id.
Kui kรคsk tรคidetakse edukalt, kuvatakse jรคrgmine vรคljund:
Vรคljund:
- nIndexesWas: 2 nรคitab indeksites olevate vรคljavรครคrtuste arvu enne kรคsu kรคivitamist.
- Igal kollektsioonil on vรคli _id, mis loetakse samuti vรคljavรครคrtuseks ja mida ei eemaldata MongoDB; seda see sรตnum nรคitabki.
- Ok: 1 vรคljund nรคitab, et toiming รตnnestus.










