Introduktion til MongoDB create index

MongoDB bruges af kompleks data mining, dataanalysealgoritmer til at administrere, ændre og arrangere de data, de arbejder på. De data, de behandler, er humongøse og kræver effektiv håndtering. Indekser i DBMS hjælper med at øge effektiviteten af ​​forespørgsler som hentning og opdatering af data. Forestil dig en samling, der har hundreder af dokumenter. For at finde dokumenter, der matcher et bestemt filter, skulle MongoDB matche filteret mod alle de dokumenter, der er til stede i samlingen, hvilket er kedeligt og tidskrævende. I stedet for at indeksere dokumenter (felter) reducerer søgetiden markant. I dette emne skal vi lære om MongoDB create index.

Indekser er datastrukturer, der er pakket med delvis datasæt i sig selv. Indekset gemmer værdien af ​​et bestemt felt (r) i dokumenter på en ordnet måde, der understøtter operationer som komparatorer, ækvatorer og rækkebaserede forespørgsler i rækkefølge.

Den grundlæggende syntaks til oprettelse af indeks

db.collectionName.createIndex(, )

nøglerTaster er et dokument, der indeholder et feltværdipar, hvor feltet er indeksnøgle, og værdien er typen af ​​indeks.

For eksempel er værdien 1 for sortering af indeksetasten i stigende rækkefølge og -1 i faldende rækkefølge

MulighederOption (er) er et dokument, der indeholder et sæt indstillinger, der påvirker oprettelsen af ​​indekser. Disse indstillinger er valgfri.

Typer af indekser

Her er de typer indekser, der nævnes nedenfor

1. Standard-id

Hvert dokument, der findes i Mongo-samlingen, indeholder et indeks

standard kaldet “_id”. Der oprettes et objekt-id, mens dokumentet oprettes, hvis der ikke findes nogen indeksværdier.

2. Enkelt felt

Indeksering udføres på et enkelt felt, og sorteringsoperationen er enten stigende eller faldende, da MongoDB kan krydse i begge retninger.

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

3. Forbindelsesindeks

MongoDB understøtter brugerdefinerede indekser i flere felter. Rækkefølgen af ​​felterne i det sammensatte indeks er ret markant. Sorteringsrækkefølge tager fra venstre mod højre, prioritet til det første felt, der er nævnt i sammensatte indekser, er højere end det næste.

Eksempel: db.collection.createIndex (("alder": 1, "dim.h": - 1)). I dette eksempel sorteres alle dokumenter med aldersfelt først i stigende rækkefølge og derefter i faldende rækkefølge af højde i dim.

4. Multikey-indeks

MongoDB bruger Multikey Index til at indeksere data, der er i et matrixformat. Under indeksering oprettes hvert element i arrayet et separat indeks, og dataene indekseres baseret på elementet / elementerne, der findes i arrayet .ongoDB passe på, om indeksfeltet har en matrix som standard.

5. Geospatial indeks

MongoDB bruger Geospatial indeksering til at finde data baseret på dens placering. Det understøtter to typer søgning, 2D (to-dimensionelt) og 3D (tredimensionelt). Disse indekser bruges til at få resultater inden for et interval. Antallet af søgeresultater kan også begrænses ved hjælp af funktionen limit ().

Eksempel: db.players.find ((loc: ($ nær: ($ geometri: (type: “high_school”, sport: “basketball” alder: (14, 17)))))). Dette eksempel finder alle indlæg fra studerende, der går i high_school, spiller basketball og er inden for aldersområdet fra 14 til 17.

6. Tekstindeks

MongoDB giver tekstindeksering til understøttelse af forespørgsler i strengformat. Tekstindeks kan have alle felter, der består af strengelementer eller en række strengelementer.
Eksempel: db.movies.find (($ text: ($ search: “tom hardy”))). Dette eksempel finder alle de dokumenter, der har skuespillernavne som tom hanks, tom felton, tom hiddelson såvel som robert hardy og john hardy. MongoDB indtager den streng, der er angivet til søgning, og giver alle de dokumenter, der har en komplet eller delvis søgestreng i den.

7. Hash indeks

MongoDB bruger et hashet indeks til at understøtte afskærmning. Hashing-indeks beregner hashværdien af ​​indeksfelterne ved hjælp af en hash-funktion. Det understøtter ikke multitastindeksering (array-værdier). Hash-indekser oprettes ved hjælp af createIndex-funktionen, og værdien af ​​indeksfeltet skal altid 'hashed'.

Eksempel: db.collection.createIndex ((: “hashed”)) . For at finde dokumenter med hashværdier returnerer db.collection.find ((: Math.pow (2, 63))) alle dokumenter med hashindekser i området 2 63.

Indstillinger for indeksering

1. Unikt indeks

Som navnet antyder, er unikke indekser unikke i naturen. MongoDB tillader ikke duplikatværdier, hvis der oprettes et indeks ved hjælp af indstillingen "unik". For at specificere, at et indeks er unikt, mens du opretter indekset, skal følgende format bruges.

db.collection.createIndex (, (unik: sand)) . De unikke begrænsninger kan også pålægges det sammensatte indeks, multikey-indekset og tekstindekset.

2. Delvis indeks

Delvis indekserer indeksdokumenter for en samling baseret på et specifikt filter eller udtryk. Da delindeks indekseres, er kun en undergruppe af kravene til samling plads (hukommelse) mindre, og dette resulterer også i reduceret ydelse.

Eksempel :

db.pupils.createIndex ((name: 1), (partialFilterExpression: (age: ($ gt: 5))))
Understøttede filterudtryk:

  • $ gt, $ gte, $ lt, $ lte (større end, større end eller lige, mindre end og mindre end eller lige)
  • $ type operatører
  • $ findes: sand operation
  • Ligestillingsoperatør ($ ækv.)
  • Logiske og operationer

3. TTL-indeks

TTL indekserer en speciel form for enkeltnøgleindekser, der kan slettes fra MongoDB-samlingen efter en timeout eller på et bestemt uretid. Nogle applikationer, der logger maskingenererede data eller logfiler, der til sidst ville være ugyldige efter et stykke tid, finder dette meget nyttig.

Eksempel:

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

4. Sparsomt indeks

Sparsomme indekser indekserer kun de dokumenter, der indeholder indeksens feltværdi. Det ignorerer alle de andre dokumenter, der ikke indeholder feltet. Som standard indeholder ikke-sparsomme indeks alle dokumenter i samlingerne, med null som værdien for de felter, der ikke er til stede.

Eksempel:

db.pupil.createIndex (("age": 1), (sparse: true))
Indekset indekserer ikke dokumenter, der ikke indeholder feltalderen.

5. Uanset følsomt indeks

Sagsensititive indekser bruges til at understøtte forespørgsler, der udfører strenge sammenligninger uden respekt for sagsfølsomhed.

Eksempel:

db.collection.createIndex (("key": 1), (collation:))

Sortering:

Samlingsdokument bruges til at specificere sprogregler, bogstaver osv.… Til streng sammenligning.

Samlingsdokumenter består af følgende:

Konklusion - MongoDB opretter indeks

Afslutningsvis er indeksering afgørende for hurtigere udførelse af forespørgsler og hukommelsesstyring. Indekser kan oprettes, ændres i henhold til brugernes krav og falder, når det ikke er nødvendigt.

Anbefalede artikler

Dette er en guide til MongoDB oprette indeks. Her diskuterer vi typer af indekser og indstillinger for indeksering sammen med eksemplerne. Du kan også se på den følgende artikel for at lære mere -

  1. MongoDB-værktøjer
  2. Hvad er MongoDB?
  3. Replikation i MongoDB
  4. Fordele ved MongoDB