Johdatus MongoDB: ään luomaan hakemisto

MongoDB: tä käytetään monimutkaisessa tiedon louhinnassa, tietoanalyysialgoritmeissa hallitsemaan, muokata ja järjestämään työskentelemäänsä tietoa. He käsittelevät tiedot ovat humongia ja vaativat tehokasta käsittelyä. DBMS-hakemistot auttavat parantamaan kyselyiden, kuten tiedon noutamisen ja päivittämisen, suorituskykyä. Kuvittele kokoelma, jossa on satoja asiakirjoja. Tiettyä suodatinta vastaavien asiakirjojen löytämiseksi MongoDB: n on vastattava suodatinta kaikkien kokoelmassa olevien asiakirjojen kanssa, mikä on työlästä ja aikaa vievää. Asiakirjojen (kenttien) indeksoinnin sijasta lyhennetään hakuaikaa huomattavasti. Tässä aiheesta aiomme oppia MongoDB: n luomaan hakemiston.

Hakemistot ovat tietorakenteita, jotka on täynnä osittaista tietojoukkoa itsessään. Hakemisto tallentaa tietyn kentän (arvokenttien) arvon asiakirjoissa järjestyksessä, joka tukee vertailu-, päiväntasaaja- ja alueperusteisia kyselyitä, kuten peräkkäisessä järjestyksessä.

Perussyntaksi indeksin luomiseen

db.collectionName.createIndex(, )

näppäimetKeys on asiakirja, joka sisältää kenttäarvoparin, jossa kenttä on hakemistonäppäin ja arvo on hakemistotyyppi.

Arvo on esimerkiksi 1 indeksointiavaimen lajittelua nousevassa järjestyksessä ja -1 laskevassa järjestyksessä

vaihtoehdotVaihtoehto (t) on dokumentti, joka sisältää joukon vaihtoehtoja, jotka vaikuttavat hakemistojen luomiseen. Nämä vaihtoehdot ovat valinnaisia.

Hakemistotyypit

Tässä on alla mainitut hakemistotyypit

1. Oletustunnus

Jokainen Mongo-kokoelmassa oleva asiakirja sisältää hakemiston

oletus nimeltään “_id”. Kohteen tunnus luodaan luotaessa asiakirjaa, jos hakemiston arvoja ei ole.

2. Yksi kenttä

Indeksointi suoritetaan yhdellä kentällä ja lajitteluoperaatio on joko nouseva tai laskeva, koska MongoDB voi kulkea kumpaankin suuntaan.

Esimerkki: db.collection.createIndex ((”ikä”: 1))

3. Yhdisteindeksi

MongoDB tukee käyttäjän määrittelemiä hakemistoja useissa kentissä. Yhdisteindeksissä annettujen kenttien järjestys on melko merkittävä. Lajittelujärjestys vie vasemmalta oikealle, yhdistelmäindekseissä mainitun ensimmäisen kentän prioriteetti wrt on korkeampi kuin seuraavassa.

Esimerkki: db.collection.createIndex ((“ikä": 1, "himmennetty": - 1)). Tässä esimerkissä kaikki ikäkenttää sisältävät asiakirjat lajitellaan ensin nousevassa järjestyksessä ja sitten alenevassa järjestyksessä hämärässä.

4. Monikertainen hakemisto

MongoDB käyttää Multikey-indeksiä indeksoimaan tietoja, jotka ovat taulukkomuoto. Indeksoinnin aikana jokainen taulukon elementti luodaan erillinen hakemisto ja tiedot indeksoidaan taulukossa olevien elementtien perusteella. MongoDB huolehtii siitä, että hakemistokentässä on oletusarvoisesti taulukko.

5. Geospatial Index

MongoDB käyttää geospatiaalista indeksointia löytääkseen tietoja sijaintinsa perusteella. Se tukee kahden tyyppistä hakua, 2D (kaksiulotteinen) ja 3D (kolmiulotteinen). Näitä indeksejä käytetään tulosten saamiseen tietyllä alueella. Hakutulosten määrää voidaan myös rajoittaa käyttämällä raja () -toimintoa.

Esimerkki: db.players.find ((loc: ($ lähellä: ($ geometria: (tyyppi: “high_school”, urheilu: “koripallo” ikä: (14, 17)))))). Tämä esimerkki löytää kaikki opiskelijat, jotka ovat lukiossa, pelaa koripalloa ja ovat ikäalueella 14-17.

6. Tekstihakemisto

MongoDB tarjoaa Tekstin indeksointi tukemaan kyselyjä merkkijonomuodossa. Teksti-hakemistossa voi olla mikä tahansa kenttä, joka koostuu merkkijonoelementeistä tai joukosta merkkijonoelementtejä.
Esimerkki: db.movies.find (($ teksti: ($ haku: “tom hardy”))) .Tämä esimerkki löytää kaikki asiakirjat, joilla on näyttelijöiden nimet, kuten tom hanks, tom felton, tom hiddelson sekä robert hardy ja John Hardy. MongoDB ottaa hakuun tarvittavan merkkijonon ja antaa kaikki asiakirjat, joissa on täydellinen tai osittainen hakujono.

7. Hajautettu hakemisto

MongoDB käyttää hajautettua hakemistoa varjostuksen tukemiseen. Hajautusindeksit laskee hakemistokenttien hash-arvon hash-toiminnon avulla. Se ei tue moninäppäimistä indeksointia (taulukon arvot). Hash-indeksit luodaan käyttämällä createIndex-toimintoa, ja hakemistokentän arvon tulisi aina olla ”hajautettu”.

Esimerkki: db.collection.createIndex ((: “hashed”)) . Löytääksesi hash-arvoisia asiakirjoja, db.collection.find ((: Math.pow (2, 63))) palauttaa kaikki asiakirjat, joiden hash-indeksit ovat alueella 2 63.

Vaihtoehdot indeksointiin

1. Ainutlaatuinen hakemisto

Kuten nimestä voi päätellä, ainutlaatuiset hakemistot ovat luonteeltaan ainutlaatuisia. MongoDB ei salli päällekkäisten arvojen antamista, jos hakemisto luodaan käyttämällä ”ainutlaatuista” vaihtoehtoa. Hakemiston määrittämiseksi, että hakemisto on ainutlaatuinen luotaessa hakemistoa, on käytettävä seuraavaa muotoa.

db.collection.createIndex (, (ainutlaatuinen: totta)) . Ainutlaatuiset rajoitukset voidaan asettaa myös yhdisteindeksi, monikertainen hakemisto ja tekstihakemisto.

2. Osittainen hakemisto

Osittain indeksoidaan kokoelman hakemistodokumentit tiettyyn suodattimeen tai lausekkeeseen perustuen. Koska osittainen hakemisto indeksoi, vain alaryhmä keräilytilaa (muistia) koskevista vaatimuksista on vähemmän ja tämä johtaa myös heikentyneeseen suorituskykyyn.

Esimerkki :

db.pupils.createIndex ((nimi: 1), (partifilterExpression: (ikä: ($ gt: 5)))
Tuetut lausekkeet:

  • $ gt, $ gte, $ lt, $ lte (suurempi kuin, suurempi tai yhtä suuri, pienempi ja pienempi tai yhtä suuri)
  • $ -tyyppiset operaattorit
  • $ on olemassa: tosi toiminta
  • Tasa-arvooperaattori ($ eq)
  • Loogiset ja tai toiminnot

3. TTL-indeksi

TTL indeksoi erityisen tyyppisiä yhden avaimen indeksejä, jotka voidaan poistaa MongoDB-kokoelmasta aikakatkaisun jälkeen tai tietyllä kellonajalla. Jotkut sovellukset, jotka kirjaavat koneella tuotettuja tietoja tai lokit, jotka ovat lopulta kelpaamattomia jonkin ajan kuluttua, pitävät tätä hyvin hyödyllistä.

Esimerkki:

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

4. Harva hakemisto

Hajaindeksit indeksoivat vain asiakirjat, jotka sisältävät hakemiston kenttäarvon. Se ohittaa kaikki muut asiakirjat, jotka eivät sisällä kenttää. Oletuksena ei-harva-hakemistot sisältävät kaikki kokoelmien asiakirjat. Niiden kenttien arvoksi, joita ei ole, on nolla.

Esimerkki:

db.pupil.createIndex ((“ikä": 1), (harva: totta))
Hakemisto ei indeksoi asiakirjoja, jotka eivät sisällä kentän ikää.

5. Kirjainkoko ei ole herkkä indeksi

Isojen ja pienten kirjainkokojen indeksejä käytetään tukemaan kyselyitä, jotka suorittavat merkkijonovertailut kunnioittamatta tapausherkkyyttä.

Esimerkki:

db.collection.createIndex ((”avain”: 1), (lajittelu:))

Lajittelu:

Lajitteluasiakirjaa käytetään kielisääntöjen, kirjainkokojen jne. Määrittämiseen merkkijonojen vertailua varten.

Lajitteluasiakirjat koostuvat seuraavista:

Johtopäätös - MongoDB luo hakemiston

Yhteenvetona voidaan todeta, että indeksointi on ratkaisevan tärkeää kyselyjen nopeamman suorittamisen ja muistinhallinnan kannalta. Hakemistot voidaan luoda, muokata käyttäjien vaatimusten mukaan ja pudottaa tarvittaessa.

Suositellut artikkelit

Tämä on opas MongoDB: n luomaan hakemistoon. Tässä keskustellaan indeksityypeistä ja indeksointivaihtoehdoista yhdessä esimerkkien kanssa. Voit myös tarkastella seuraavaa artikkelia saadaksesi lisätietoja -

  1. MongoDB-työkalut
  2. Mikä on MongoDB?
  3. Kopiointi MongoDB: ssä
  4. MongoDB: n edut