Introduksjon til MongoDB create Index

MongoDB brukes av komplekse data mining, dataanalyse algoritmer for å administrere, endre og ordne dataene de jobber med. Dataene de arbeider med er humongøse og krever effektiv håndtering. Indekser i DBMS hjelper til med å øke ytelsen til spørsmål som henting og oppdatering av data. Se for deg en samling som har hundrevis av dokumenter. For å finne dokumenter som samsvarer med et bestemt filter, ville MongoDB måtte matche filteret mot alle dokumentene som er til stede i samlingen, noe som er kjedelig og tidkrevende. I stedet for å indeksere dokumenter (felt) vil redusere søketiden betydelig. I dette emnet skal vi lære om MongoDB create Index.

Indekser er datastrukturer som er fullpakket med delvis datasett i seg selv. Indeksen lagrer verdien til et eller flere bestemte felt i dokumenter på en ordnet måte som støtter operasjoner som komparatorer, ekvatorer og rekkebaserte spørsmål i rekkefølge.

Den grunnleggende syntaks for å lage indeks

db.collectionName.createIndex(, )

KeysNøkler er et dokument som inneholder et feltverdipar der feltet er indeksnøkkel og verdi er indekstypen.

For eksempel er verdien 1 for å sortere indeksnøkkelen i stigende rekkefølge og -1 i synkende rekkefølge

alternativerAlternativ (er) er et dokument som inneholder et sett med alternativer som påvirker opprettelsen av indekser. Disse alternativene er valgfrie.

Typer indekser

Her er de typer indekser som er nevnt nedenfor

1. Standard-id

Hvert dokument som er til stede i Mongo-samlingen inneholder en indeks

standard kalt “_id”. Det opprettes en objekt-id mens du oppretter dokumentet hvis ingen indeksverdier er til stede.

2. Enkeltfelt

Indeksering utføres på et enkelt felt, og sorteringsoperasjonen er enten stigende eller synkende, da MongoDB kan krysse i begge retninger.

Eksempel: db.collection.createIndex (("age": 1))

3. Sammensatt indeks

MongoDB støtter brukerdefinerte indekser i flere felt. Rekkefølgen på feltene gitt i sammensatt indeks er ganske betydelig. Sorteringsrekkefølgen tar fra venstre til høyre, prioritet til det første feltet som er nevnt i sammensatte indekser er høyere enn det til det neste.

Eksempel: db.collection.createIndex (("age": 1, "dim.h": - 1)). I dette eksemplet blir alle dokumentene med aldersfelt først sortert i stigende rekkefølge og deretter i synkende rekkefølge på høyden i dim.

4. Multikey-indeks

MongoDB bruker Multikey Index for å indeksere data som er i et matriseformat. Under indeksering opprettes hvert element i matrisen en egen indeks, og dataene indekseres basert på elementet / elementene som er tilstede i matrisen. MongoDB passer på om indeksfeltet har en matrise som standard.

5. Geospatial Index

MongoDB bruker Geospatial indeksering for å finne data basert på dens beliggenhet. Den støtter to typer søk, 2D (todimensjonalt) og 3D (tredimensjonalt). Disse indeksene brukes til å få resultater innenfor et område. Antall søkeresultater kan også begrenses ved å bruke limit () -funksjonen.

Eksempel: db.players.find ((loc: ($ nær: ($ geometri: (type: “high_school”, sport: “basketball” alder: (14, 17)))))). Dette eksemplet vil finne alle oppføringene til studenter som går i high_school, spiller basketball og er innenfor aldersområdet 14 til 17.

6. Tekstindeks

MongoDB gir tekstindeksering for å støtte spørsmål i strengformat. Tekstindeks kan ha alle felt som består av strengelementer eller en rekke strengelementer.
Eksempel: db.movies.find (($ text: ($ search: “tom hardy”))). Dette eksemplet vil finne alle dokumentene som har skuespillernavn som tom hanks, tom felton, tom hiddelson samt robert hardy og john hardy. MongoDB tar inn strengen som er gitt for søk og gir alle dokumentene som har fullstendig eller delvis søkestreng i den.

7. Hashed indeks

MongoDB bruker en hashet indeks for å støtte avskjerming. Hashing-indekser beregner hashverdien til indeksfeltene ved å bruke en hasjfunksjon. Den støtter ikke flernøkkelindeksering (matriseverdier). Hash-indekser opprettes ved hjelp av createIndex-funksjonen, og verdien til indeksfeltet skal alltid være 'hashet'.

Eksempel: db.collection.createIndex ((: "hashed")) . For å finne dokumentene med hasjverdier, returnerer db.collection.find ((: Math.pow (2, 63))) alle dokumentene med hasjindekser i området 2 63.

Alternativer for indeksering

1. Unik indeks

Som navnet antyder, er unike indekser unike i naturen. MongoDB tillater ikke dupliserte verdier hvis en indeks opprettes ved å bruke det "unike" alternativet. For å spesifisere at en indeks er unik mens du oppretter indeksen, skal følgende format brukes.

db.collection.createIndex (, (unik: sann)) . De unike begrensningene kan også pålegges sammensatt indeks, multikey-indeks og tekstindeks.

2. Delindeks

Delvis indekserer indeksdokumenter for en samling basert på et spesifikt filter eller uttrykk. Siden delvis indekserer indeks, er bare en undergruppe av kravene til samlingsplass (minne) mindre, og dette resulterer også i redusert ytelse.

Eksempel :

db.pupils.createIndex ((name: 1), (partialFilterExpression: (age: ($ gt: 5)))
Filtrer uttrykk støttet:

  • $ gt, $ gte, $ lt, $ lte (større enn, større enn eller lik, mindre enn og mindre enn eller lik)
  • $ type operatører
  • $ eksisterer: ekte drift
  • Likestillingsoperatør ($ ekv.)
  • Logiske og, eller operasjoner

3. TTL-indeks

TTL indekserer en spesiell type enkeltnøkkelindekser som kan slettes fra MongoDB-samlingen etter en tidsavbrudd eller på et bestemt klokkeslett. Noen applikasjoner som logger maskingenererte data eller logger som etter hvert vil være ugyldige etter en viss periode, finner dette veldig hjelpsom.

Eksempel:

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

4. Sparsom indeks

Sparsomme indekser indekserer bare dokumentene som inneholder feltverdien til indeksen. Den ignorerer alle de andre dokumentene som ikke inneholder feltet. Som standard inneholder ikke-sparsomme indekser alle dokumentene i samlingene, med null som verdien for de feltene som ikke er til stede.

Eksempel:

db.pupil.createIndex (("age": 1), (sparse: true))
Indeksen indekserer ikke dokumenter som ikke inneholder feltalderen.

5. Uvesentlig følsom indeks

Saksensitive indekser brukes til å støtte spørsmål som utfører strenge sammenligninger uten respekt for saksfølsomhet.

Eksempel:

db.collection.createIndex (("nøkkel": 1), (collation:))

Sortering:

Samlingsdokument brukes til å spesifisere språkeregler, bokstaver osv… for streng sammenligning.

Samlingsdokumenter består av følgende:

Konklusjon - MongoDB opprette indeks

Avslutningsvis er indeksering avgjørende for raskere utførelse av spørsmål og minnehåndtering. Indekser kan opprettes, modifiseres i henhold til krav fra brukere og slippes når det ikke er nødvendig.

Anbefalte artikler

Dette er en guide til MongoDB opprette indeks. Her diskuterer vi typer indekser og alternativer for indeksering sammen med eksemplene. Du kan også se på følgende artikkel for å lære mer -

  1. MongoDB-verktøy
  2. Hva er MongoDB?
  3. Replikering i MongoDB
  4. Fordeler med MongoDB