Mongodb $ min, $ max og $ AVG -operatører

Mongodb $ min, $ max og $ AVG -operatører
MongoDB er veldig enorm når det. Disse operatørene kan brukes på strenger, heltall og andre typer verdier eller felt. Det er også noen sammenligningsoperatører tilgjengelig som Min- og Max -operatørene. MongoDB Min -operatøren brukes til å finne den laveste verdien i et spesifisert felt av en samling mens MongoDB Max -operatøren brukes til å finne den høyeste verdien i et spesifisert felt i en samling. Sammen med det blir MongoDB AVG-operatøren avstøpt for å beregne gjennomsnittsverdien til et spesifisert felt. I denne guiden vil vi diskutere bruken av hver operatør en etter en.

Lag en samling

“DB.CreateCollection (“Order”) ”-kommando brukes for å lage en ny samling i en MongoDB -database. Samlingen heter "orden" i dette tilfellet. Når kommandoen utføres, er utgangen “OK: 1”. Dette indikerer at samlingen er effektivt opprettet. "OK" -feltet i utgangen er en statusindikator som returnerer en verdi på 1 hvis operasjonen er vellykket og en verdi på 0 hvis den ikke er. Det er viktig å merke seg at hvis en samling med samme navn allerede eksisterer i databasen, returnerer kommandoen en feil.

Test> DB.CreateCollection ("Order")
OK: 1

Sett inn dokumentene

“DB.Rekkefølge.INSERTMANY () ”Kommando setter inn flere dokumenter i" Order "-samlingen i" Test "-databasen. Dokumentene som er satt inn er en rekke objekter som inneholder en "id", "tittel" og "pris" -felt. Dokumentene inneholder de samme verdiene for "tittel" -feltene i noen poster, og de inneholder unike poster i "pris" -feltet. Utgangen fra kommandoen er et dokument som bekrefter at innsatsen er anerkjent (anerkjent: sant) og viser de unike objektidene som er tilordnet hvert av de innsatte dokumentene.

Test> DB.Rekkefølge.InsertMany ([id: 1, tittel: "Soap", pris: 44, id: 2, tittel: "sjampo", pris: 94, id: 3, tittel: "facewash", pris: 120 , id: 4, tittel: "Soap", pris: 65, id: 5, tittel: "sjampo", pris: 78])

Anerkjent: sant,
innsats:
'0': ObjectId ("63c4eec7ac8011ecc27d7a40"),
'1': ObjectId ("63c4eec7ac80111ecc27d7a41"),
'2': ObjectId ("63c4eec7ac8011ecc27d7a42"),
'3': ObjectId ("63c4eec7ac8011ecc27d7a43"),
'4': ObjectId ("63c4eec7ac80111ecc27d7a44")

Vis postene

“DB.Rekkefølge.Finn () "-kommandoen blir utført i MongoDB -skallet og brukes til å hente alle dokumenter i" Order "-samlingen. De tomme krøllete seler indikerer at ingen spesifikke spørringskriterier brukes til å filtrere dokumentene, så alle dokumenter i samlingen returneres. Utgangen fra kommandoen er en liste over JSON -objekter, som hver representerer et dokument i "Order" -samlingen.

Test> DB.Rekkefølge.finne()
[
_id: ObjectId ("63c4eec7ac80111ecc27d7a40"), id: 1, tittel: 'såpe', pris: 44,
_id: ObjectId ("63c4eec7ac80111ecc27d7a41"), id: 2, tittel: 'sjampo', pris: 94,
_id: ObjectId ("63c4eec7ac80111ecc27d7a42"), id: 3, tittel: 'facewash', pris: 120,
_id: ObjectId ("63c4eec7ac80111ecc27d7a43"), id: 4, tittel: 'såpe', pris: 65,
_id: ObjectId ("63c4eec7ac80111ecc27d7a44"), id: 5, tittel: 'sjampo', pris: 78
]

Eksempel 1: MongoDB $ min operatør

I det første eksemplet med denne artikkelen vil vi diskutere bruken av "Min" -operatøren ved hjelp av enkle MongoDB -illustrasjoner. Følgende kommando bruker MongoDB Aggregate -funksjonen for å gruppere dokumentene i "Order" -samlingen av "Tittel" -feltet. Deretter beregner den minimum "pris" i hver gruppe. Det første argumentet som sendes til den samlede funksjonen er en rekke rørledningsstadier. I dette tilfellet er det bare ett rørledningstrinn som bruker $ Group -operatøren for å gruppere dokumentene etter "tittel" -feltet som er spesifisert som "_id" -feltet i $ Group -operatøren. Operatøren beregner også minimum "pris" i hver gruppe og tildeler den til "MinPrice" -feltet.

Den resulterende utgangen er en rekke objekter, med hvert objekt som representerer en gruppe dokumenter med samme "tittel" -felt. Utgangen viser at det er tre grupper av dokumenter med forskjellige "tittel" -felt - "såpe", "sjampo" og "facewash". Minimumsprisen for hver gruppe er henholdsvis 44, 78 og 120.

Test> DB.Rekkefølge.Aggregate ([$ gruppe: _id: "$ tittel", Minprice: $ min: "$ pris"])
[
_id: 'såpe', minprice: 44,
_id: 'sjampo', minprice: 78,
_id: 'Facewash', Minprice: 120
]

Eksempel 2: MongoDB $ maks operatør

Her er noen eksempler å diskutere og bruke "maks" -operatøren i MongoDB. Den vedlagte instruksjonen bruker MongoDB -aggregatfunksjonen for å gruppere ordrenesamlingen etter "tittel" -feltet. Innenfor gruppen skaper det to nye felt: “PriceWithTax” og “MaxPrice”. "PriceWithTax" -feltet bruker $ Max -operatøren for å finne den maksimale verdien av resultatet av $ ADD -operatøren. $ ADD -operatøren legger til 10 til "pris" -feltet for hvert dokument i gruppen. Dette betyr at "PriceWithTax" -feltet har den høyeste "pris" feltverdien pluss 10 for hver gruppe dokumenter med samme "tittel".

"MaxPrice" -feltet bruker $ Max -operatøren for å finne den maksimale verdien av "pris" -feltet for hver gruppe av dokumenter med samme "tittel". Utgangen fra kommandoen er en rekke dokumenter som viser "tittelen", "PriceWithTax" og "MaxPrice" -felt for hver gruppe av dokumenter i ordrenesamlingen. Dokumentene bestilles av "tittel" -feltet. For eksempel viser det første dokumentet i utdataene at "tittelen" er "sjampo", "PriceWithTax" er 104 (den høyeste "pris" feltverdien pluss 10 for alle dokumenter med "tittelen" på "sjampo"), og "MaxPrice" er 94 (den høyeste "pris" feltverdien for alle dokumenter med "tittelen" på "sjampo").

Test> DB.Rekkefølge.Aggregate ([$ gruppe: _id: "$ tittel", PriceWithTax: $ max: $ add: ["$ price", 10], maxprice: $ max: "$ pris"]] )
[
_id: 'sjampo', PriceWithTax: 104, MaxPrice: 94,
_id: 'Facewash', PriceWithTax: 130, MaxPrice: 120,
_id: 'Soap', PriceWithTax: 75, MaxPrice: 65
]

Eksempel 3: MongoDB $ AVG -operatør

I vår siste illustrasjon av denne guiden dekker vi MongoDB “AVG” -operatøren for å finne ut gjennomsnittsverdien fra et bestemt samlingsfelt. MongoDB Aggregate -funksjonen brukes til å gruppere dokumentene i "Order" -samlingen etter deres "tittel" -felt. Innenfor hver gruppe beregner den den gjennomsnittlige "prisen" og oppretter et nytt felt som heter "AvgPrice" for å lagre den verdien. Resultatet av denne kommandoen er en rekke objekter, med hvert objekt som representerer en gruppe dokumenter med samme "tittel" -verdi. Objektet inneholder "tittel" -verdien som "_id" -feltet og den beregnede gjennomsnittlige "prisen" -verdien som "AvgPrice" -feltet.

I dette tilfellet er det tre grupper: “såpe”, “sjampo” og “facewash”. Gjennomsnittsprisen for "SOAP" -gruppen er 54.5. Gjennomsnittsprisen for "sjampo" -gruppen er 86. Og gjennomsnittsprisen for "facewash" -gruppen er 120, som følger:

Test> DB.Rekkefølge.Aggregate ([$ gruppe: _id: "$ tittel", avgprice: $ avg: "$ pris"])
[
_id: 'såpe', avgprice: 54.5,
_id: 'sjampo', avgprice: 86,
_id: 'facewash', avgprice: 120
]

Konklusjon

Innføringen av artikkelen vår forklarer bruksområder og forskjeller til de tre veldig vanlige og mest brukte operatørene i MongoDB - Min-, Max- og AVG -operatørene. Ved å gå ut med eksemplene, forklarte vi metodene for å bruke disse operatørene i tre separate illustrasjoner. Den første illustrasjonen forklarer Min -operatøren, den andre illustrasjonen forklarer "maks", mens den tredje illustrasjonen forklarer "AVG" -operatørens bruk. Hvis du har en samling av dokumenter som representerer noen numeriske verdier, kan du prøve Min-, Max- og AVG -operatører for å finne de laveste, høyeste og gjennomsnittlige verdiene.