MongoDB – Indeksointi

Esittelyt

Indeksit tukevat kyselyiden tehokasta ratkaisemista. Ilman indeksejä MongoDB:n on skannattava kokoelman jokainen dokumentti valitakseen ne dokumentit, jotka vastaavat kyselylauseeseen. Tämä skannaus on erittäin tehotonta ja vaatii MongoDB:ltä suuren tietomäärän käsittelyä.

Indeksit ovat erityisiä tietorakenteita, jotka tallentavat pienen osan tietoaineistosta helposti läpikäytävässä muodossa. Indeksiin tallennetaan tietyn kentän tai kenttäjoukon arvo, joka on järjestetty indeksissä määritellyn kentän arvon mukaan.

The createIndex()-metodi

Indeksin luomiseksi on käytettävä MongoDB:n createIndex()-metodia.

Syntaksi

Metodin createIndex() perussyntaksi on seuraava().

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

Tässä key on sen kentän nimi, jolle halutaan luoda indeksi ja 1 on nousevaa järjestystä varten. Jos haluat luoda indeksin laskevassa järjestyksessä, sinun on käytettävä -1.

Esimerkki

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

In createIndex()-metodilla voit luovuttaa useita kenttiä, jotta voit luoda indeksin useille kentille.

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

Tämä metodi hyväksyy myös luettelon valinnaisista vaihtoehdoista (jotka ovat valinnaisia). Seuraavassa on luettelo –

Parametri Tyyppi Kuvaus
tausta Boolean Rakentaa indeksin taustalla, jotta indeksin rakentaminen ei estäisi muita tietokannan toimintoja. Määritä true, jos haluat rakentaa indeksin taustalla. Oletusarvo on false.
unique Boolean Luo yksilöllisen indeksin, jotta kokoelma ei hyväksy sellaisten asiakirjojen lisäämistä, joiden indeksiavain tai -avaimet vastaavat indeksissä jo olevaa arvoa. Määritä true, jos haluat luoda yksilöllisen indeksin. Oletusarvo on false.
name string Indexin nimi. Jos sitä ei määritetä, MongoDB luo indeksin nimen ketjuttamalla indeksoitavien kenttien nimet ja lajittelujärjestyksen.
sparse Boolean Jos true, indeksi viittaa vain dokumentteihin, joissa on määritelty kenttä. Nämä indeksit käyttävät vähemmän tilaa, mutta käyttäytyvät eri tavalla joissakin tilanteissa (erityisesti lajittelussa). Oletusarvo on false.
expireAfterSeconds integer Määrittää TTL-arvona arvon sekunneissa, jolla ohjataan, kuinka kauan MongoDB säilyttää dokumentteja tässä kokoelmassa.
painot dokumentti Paino on luku, joka vaihtelee 1:n ja 99,999:n välillä, ja se ilmaisee kentän merkityksen suhteessa muihin indeksoituihin kenttiin pisteytyksen kannalta.
default_language string Teksti-indeksin osalta kieli, joka määrittää stop-sanojen luettelon sekä stemmerin ja tokenisaattorin säännöt. Oletusarvo on englanti.
language_override string Teksti-indeksille määritetään sen asiakirjan kentän nimi, joka sisältää kielen, jolla oletuskieli ohitetaan. Oletusarvo on language.

The dropIndex()-metodi

Voit pudottaa tietyn indeksin käyttämällä MongoDB:n dropIndex()-metodia.

Syntaksi

DropIndex()-metodin perussyntaksi on seuraava().

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

Tässä key on sen tiedoston nimi, johon halutaan luoda indeksi ja 1 on nousevassa järjestyksessä. Jos haluat luoda indeksin laskevassa järjestyksessä, sinun on käytettävä -1.

Esimerkki

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

DropIndexes()-metodi

Tämä metodi poistaa useita (määritettyjä) indeksejä kokoelmasta.

Syntaksi

DropIndexes()-metodin perussyntaksi on seuraava() –

>db.COLLECTION_NAME.dropIndexes()

Esimerkki

Asettakaamme, että olemme luoneet 2 indeksiä nimettyyn mycol-kokoelmaan alla olevan kuvan mukaisesti. –

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

Seuraava esimerkki poistaa edellä luodut mycol-indeksit –

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

Metodi getIndexes()

Tämä metodi palauttaa kaikkien kokoelmassa olevien indeksien kuvauksen.

Syntaksi

Seuraavassa on getIndexes()-metodin perussyntaksi –

db.COLLECTION_NAME.getIndexes()

Esimerkki

Asettakaamme, että olemme luoneet 2 indeksiä nimettyyn mycoliin. kokoelmassa alla esitetyllä tavalla –

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

Seuraava esimerkki hakee kaikki indeksit kokoelmassa mycol –

> db.mycol.getIndexes()>
mainokset

Vastaa

Sähköpostiosoitettasi ei julkaista.