Sissejuhatus MongoDB-i loomiseks

MongoDB-d kasutavad keerulised andmete kaevandamine, andmeanalüüsi algoritmid töötavate andmete haldamiseks, muutmiseks ja korraldamiseks. Nende käsitletavad andmed on humaansed ja vajavad tõhusat käsitlemist. DBMS-i indeksid aitavad tõsta päringute jõudlust, näiteks andmete toomine ja värskendamine. Kujutage ette kollektsiooni, milles on sadu dokumente. Kindlale filtrile vastavate dokumentide leidmiseks peaks MongoDB sobitama filtri kõigi kollektsioonis sisalduvate dokumentidega kõigi jaoks, mis on tüütu ja aeganõudev. Dokumentide (väljade) indekseerimise asemel vähendab otsinguaeg märkimisväärselt. Selles teemas tutvume MongoDB-i indeksi loomisega.

Indeksid on andmestruktuurid, mis on endasse koondatud osalise andmekogumiga. Indeks salvestab kindla välja (de) väärtuse dokumentides korrapäraselt, mis toetab järjestusi järgmistes toimingutes nagu võrdlejad, ekvaatorid ja vahemikupõhised päringud.

Põhiline süntaks indeksi loomiseks

db.collectionName.createIndex(, )

VõtmedKlahvid on dokument, mis sisaldab välja väärtuste paari, kus väli on indeksi võti ja väärtus on indeksi tüüp.

Näiteks on indeksi võtme sorteerimisel kasvavas järjekorras väärtus 1 ja kahanevas järjekorras -1

ValikudValik (optsioonid) on dokument, mis sisaldab valikukomplekti, mis mõjutab indeksite loomist. Need valikud on valikulised.

Indeksite tüübid

Siin on allpool mainitud indeksitüübid

1. Vaikimisi ID

Iga Mongo kollektsioonis olev dokument sisaldab indeksit

vaikimisi nimetatakse _id. Objekti ID luuakse dokumendi loomise ajal, kui indeksiväärtusi pole.

2. Üksikväli

Indekseerimine toimub ühel väljal ja sortimistoimingud on kas kasvavad või kahanevad, kuna MongoDB võib liikuda mõlemas suunas.

Näide: db.collection.createIndex ((„vanus”: 1))

3. liitindeks

MongoDB toetab kasutaja määratletud indekseid mitmes valdkonnas. Liitindeksis esitatud väljade järjekord on üsna oluline. Sorteerimise järjekord võtab vasakult paremale, ühendi indeksites mainitud esimese välja prioriteetsus wrt on kõrgem kui järgmisel.

Näide: db.collection.createIndex ((„vanus": 1, "dim.h": - 1)). Selles näites sorteeritakse kõik vanuseväljaga dokumendid kõigepealt kasvavas järjekorras ja seejärel kahanevas kõrguse järjekorras hämaruses.

4. Mitmekordne indeks

MongoDB kasutab massiivi vormingus andmete indekseerimiseks multikey indeksit. Indekseerimise ajal luuakse massiivi igale elemendile eraldi indeks ja andmed indekseeritakse massiivis olevate elementide alusel.MongoDB hoolitseb selle eest, et indeksi väljal oleks vaikimisi massiiv.

5. Georuumiline indeks

MongoDB kasutab asukoha leidmiseks andmete leidmiseks georuumilist indekseerimist. See toetab kahte tüüpi otsimist, 2D (kahemõõtmeline) ja 3D (kolmemõõtmeline). Neid indekseid kasutatakse tulemuste saamiseks vahemikus. Otsingutulemuste arvu saab piirata ka funktsiooni limit () abil.

Näide: db.players.find ((loc: ($ lähedal: ($ geomeetria: (tüüp: “high_school”, sport: “korvpall” vanus: (14, 17)))))). Selles näites leiate kõik õpilased, kes käivad keskkoolis, mängivad korvpalli ja on vahemikus 14–17.

6. Teksti register

MongoDB pakub teksti indekseerimist stringi vormingus päringute toetamiseks. Tekstiindeksis võivad olla mis tahes väljad, mis koosnevad stringielementidest või stringielementide massiivist.
Näide: db.movies.find (($ tekst: ($ otsing: “tom hardy”))). Selles näites leiate kõik dokumendid, millel on näitlejate nimed nagu tom hanks, tom felton, tom hiddelson, samuti Robert Hardy ja John Hardy. MongoDB võtab otsinguks ette nähtud stringi ja annab kõik dokumendid, milles on täielik või osaline otsingustring.

7. Räsitud indeks

MongoDB kasutab varjutuse toetamiseks räsitud indeksit. Räsimisindeksid arvutavad räsifunktsiooni abil indeksiväljade räsiväärtuse. See ei toeta mitme võtmega indekseerimist (massiivi väärtused). Rihmaindeksid luuakse funktsiooni createIndex abil ja indeksi välja väärtus peaks alati olema “räsitud”.

Näide: db.collection.createIndex ((: “hashed”)) . Räsiväärtustega dokumentide leidmiseks tagastab db.collection.find ((: Math.pow (2, 63))) kõik dokumendid, mille räsi indeksid on vahemikus 2 63.

Indekseerimise valikud

1. Unikaalne indeks

Nagu nimigi ütleb, on ainulaadsed indeksid oma olemuselt ainulaadsed. MongoDB ei luba duplikaatväärtusi, kui indeksi loomiseks kasutatakse suvandit „unikaalne“. Indeksi loomise ajal ainulaadse sisu täpsustamiseks tuleks kasutada järgmist vormingut.

db.collection.createIndex (, (ainulaadne: tõsi)) . Ainulaadseid piiranguid saab kehtestada ka liitindeksile, mitmekorruselisele indeksile ja tekstiindeksile.

2. Osaline indeks

Osaliselt indekseeritakse kogumiku dokumendid kindla filtri või avalduse alusel. Kuna osalised indeksid indekseerivad, on kogumisruumi (mälu) nõuete ainult alamrühm väiksem ja see põhjustab ka väiksemat jõudlust.

Näide :

db.pupils.createIndex ((nimi: 1), (osaliseltFilterExpression: (vanus: ($ gt: 5)))
Toetatavad filtriväljendid:

  • $ gt, $ gte, $ lt, $ lte (suurem kui, suurem või võrdne, väiksem ja väiksem või võrdne)
  • $ tüüpi operaatorid
  • $ on olemas: tõeline toiming
  • Võrdõiguslikkuse operaator ($ ekv)
  • Loogiline ja või toimingud

3. TTL-indeks

TTL indekseerib eriliiki ühe võtme indekseid, mida saab MongoDB kogust kustutada pärast aja möödumist või kindlal kellaajal.Mõned rakendused, mis logivad masina genereeritud andmeid või logisid, mis mõne aja pärast lõpuks kehtetud on, leiavad selle väga abivalmis.

Näide:

db.log.createIndex ((“lastModifiedDate”: 1), (expireAfterSeconds: 10000))

4. hõre indeks

Hõre indeks indekseerib ainult dokumendid, mis sisaldavad indeksi välja väärtust. See ignoreerib kõiki teisi dokumente, mis välja ei sisalda. Vaikimisi sisaldavad hõredad indeksid kõiki kogudes olevaid dokumente, väärtuste null väärtus on nendel väljadel, mida pole.

Näide:

db.pupil.createIndex ((„vanus”: 1), (hõre: tõsi))
Indeks ei indekseeri dokumente, mis ei sisalda välja vanust.

5. tõstutundlik indeks

Suur- ja väiketähtede suhtes tundmatuid indekseid kasutatakse päringute toetamiseks, mis täidavad stringi võrdlust, arvestamata suurtähtede tundlikkust.

Näide:

db.collection.createIndex ((„võti”: 1), (võrdlus:))

Kogumine:

Kogumisdokumenti kasutatakse keelereeglite, kirjatähtede jne täpsustamiseks stringi võrdlemiseks.

Kogumisdokumendid koosnevad järgmisest:

Järeldus - MongoDB loob indeksi

Kokkuvõtteks võib öelda, et indekseerimine on päringute kiiremaks täitmiseks ja mäluhalduseks ülioluline. Indeksid saab luua, vastavalt kasutajate nõudmistele muuta ja vajadusel alla jätta.

Soovitatavad artiklid

See on juhend MongoDB-i indeksi loomiseks. Siin käsitleme indeksitüüpe ja indekseerimise võimalusi koos näidetega. Lisateabe saamiseks võite vaadata ka järgmist artiklit -

  1. MongoDB tööriistad
  2. Mis on MongoDB?
  3. Kopeerimine MongoDB-s
  4. MongoDB eelised