MongoDB Group etter flere felt

MongoDB Group etter flere felt

MongoDB -databasen spiller en viktig rolle i datalagring og manipulering. For å organisere data, oppretter vi grupper for å samle den samme typen data på ett sted. Gruppering kan være på forskjellige attributter, enten det er fra tellevariabelen eller noen annen funksjon. Denne opplæringen vil forklare gruppens oppretting i henhold til forskjellige dokumenterfelt.

For implementering av fenomenet grupper i henhold til flere felt, må vi ha noen data i databasen. Vi oppretter en database først. Dette gjøres ved å erklære navnet på databasen med nøkkelordet “Bruk.”For denne implementeringen bruker vi en database“ Demo.”

>> Bruk demo

Når du er ferdig med databasen, vil data bli satt inn i databasen. Og for datainnføringen vi pleide å lage "samlinger", dette er containerne som spiller en viktig rolle i lagring av ubegrensede data i dem. Om gangen kan vi lage mange samlinger i en enkelt database. Her oppretter vi en database med navnet “Info.”

>> db.CreateCollection ('Info')

Responsen fra MongoDB vil være "OK"; Det er bekreftelsen av opprettelsen av samlingen. Dataene i samlingen legges inn rad for rad. Så vi vil sette inn data i samlingen. Ettersom disse dataene vil bli brukt videre i eksempler for å lage grupper i henhold til forskjellige felt, så har vi skrevet inn mange rader. Hver gang en annen ID blir tilordnet hver rad.

>> db.info.Insertone ("Navn": "Savid",
"Alder": 28,
"Kjønn Mann",
"Land": "United States of America")

Tilsvarende blir alle dataene satt inn. Du kan se alle innsatte data ved å bruke Find () -kommandoen

>> db.info.finne().ganske()

Eksempel 1: Gruppe etter flere felt/attributter

Når vi har et stort sett med data i databasen, men vi ønsker å se på noen få av dem, så for dette formålet blir $ grupper funnet. I dette eksemplet vil vi lage en gruppe for å se noen spesielle attributter fra samlingen. Gruppefaktoren er avhengig av den samlede operasjonen. En samlet operasjon brukes, for å oppsummere dataene i henhold til fellesfeltene. Dollaren “$” -tegnet betegner variabelen. Bruk nå en spørring på ovennevnte infosamling.

En gruppe avhengig av ID, vil bli opprettet. Og da er bare alders- og kjønnsdokumenter valgt som skal vises. Mens hele dataene, inkludert navn og land, fjernes. Dette er på en eller annen måte et filter som brukes til å begrense visningen av data.

>> db.info.Aggregate ([$ gruppe: _id: alder: "$ age", kjønn: "$ kjønn"]))

Du kan se at vi har gruppert hver rad i henhold til ID ved å begrense dataene til to attributter.

Eksempel 2: Gruppe gjennom flere felt ved å bruke en tilstand

Dette refererer til gruppering av dokumentene i henhold til en spesifikk tilstand. Det vil bli opprettet en gruppe på to attributter, og etter gruppen oppretting vil vi legge til en tellende variabel for å telle forekomsten av verdien av et spesifikt dokument. Og også har vi lagt til en sorteringsordre.

La oss først vise dokumentene i samlingen vår “Ny.”Vi har laget en samling og lagt til data om den tidligere ved å følge de samme trinnene beskrevet ovenfor. Vi vil bare vise alle elementene i samlingen gjennom Find () -funksjonen.

Spørringen vil inneholde gruppedelen først. Gruppen er opprettet på ID; Universitet og nivå er de to grunnleggende attributtene som vi ønsker å bli vist. Variabelen vi bruker får verdien fra samlingen og tildeler den deretter til spørringsvariabelen. Alle verdiene og betingelsene er ikke skrevet direkte i kommandoen.

Etter gruppeopprettelsen brukes tilstanden; Det skal telle og beregne summen i henhold til nivåene i hvert dokument. Etter det vil dette svaret bli ordnet i synkende rekkefølge. Dette gjøres gjennom sort () -funksjonene. Denne funksjonen inneholder bare to parametere; For stigende verdi er den 1, og for synkende er den -1.

>> db.ny.Aggregate ([$ gruppe: _id: "University": "$ University", "Level": "$ nivå", "LevelCount": "$ sum": 1, "$ sort" : "LevelCount":-1])

Den synkende rekkefølgen vil vise at den større mengden av nivået blir vist først, og deretter vises den mindre etter nivådokumentet.

Eksempel 3: MongoDB Bucket Group etter flere felt

Som navnet indikerer at gruppene blir funnet i henhold til bøtta. Dette gjøres ved å lage bøtte -aggregeringen. Bøtte aggregering er prosessen med å kategorisere dokumentene i grupper. Denne gruppen fungerer som bøtter. Hvert dokument er delt avhengig av det spesifikke uttrykket.

For å utdype dette konseptet, vil vi se på en samling vi har laget, og nå vil vi bruke kommandoene på det. En "tegning" -samling opprettes som lagrer den grunnleggende informasjonen om en person. Vi har vist alle de 4 radene som er lagt inn i samlingen tidligere.

På dataene ovenfor vil vi bruke en kommando for å opprette en bøtte (gruppe) som har året som attributt til å gruppere dataene. Vi har også skapt grenser der året for født og død er nevnt. Betingelsene som brukes på denne kommandoen inkluderer tellevariabelen for å telle antall forekomster. Vi har også brukt en sammenkoblingsmetode her for å kombinere både det første og andre navn som strenger. Og også fødselsåret vil vises. IDen avhenger av året.

Når vi beregner denne spørringen, vil den resulterende verdien vise at to rader er gruppert avhengig av aldersgrensene vi har opprettet.

Konklusjon

MongoDB -funksjonen ved gruppering avhengig av mer enn et enkelt felt er utdypet i denne artikkelen ved å demonstrere arbeidet med den samlede operasjonen i gruppering. Enhver gruppefunksjon er ufullstendig uten den samlede funksjonen. Gruppefunksjonen brukes direkte gjennom de forskjellige feltene for å begrense eksponeringen av hele data. Gruppering via flere felt oppnås også ved å bruke en bestemt tilstand. Til slutt har vi beskrevet etableringen av en bøtte -gruppe som inneholder flere ting som en bøtte.