MongoDB $ først og $ Firstn -operatører

MongoDB $ først og $ Firstn -operatører

$ First og $ Firstn -operatørene er aggregeringsrørledningsmetoden til MongoDB. $ Første aggregeringsoperatør lar oss bestemme den første verdien i en matrise. $ Første operatøren tar bare matrisen som en inngangsparameter. $ Firstn -operatøren returnerer et forhåndsinnstilt antall oppføringer fra startindeksen til en matrise. Nummeret som er spesifisert til $ Firstn -operatøren kan ikke være mindre enn "1". Dessuten gir $ Firstn -operatøren den opprinnelige matrisen hvis det definerte tallet er større enn eller lik verdiene til matrisen.

Hvordan bruke $ First og $ Firstn -operatørene i MongoDB

$ First og $ Firstn -operatørene brukes i MongoDB for å få det nødvendige antall elementer fra rekke dokumenter. Operatørene på $ First og $ Firstn løser bare matrisefeltene i dokumentene til MongoDB -samlingen. Vi jobber med "FoodItems" -samlingen i denne MongoDB -artikkelen. Vi legger til dokumentene i "FoodItems" -samlingen som også inneholder array -feltet som $ First og $ Firstn Operators -funksjonen. Kommandoen for å legge til dokumentene er representert her som bruker InsertMany () -metoden for innsetting samtidig.

db.Matvarer.INSERTMANY ([

"_id": 1,
"Navn": "Frukt",
"Liste": ["Apple", "Mango", "Cherry", "Kiwi"],
"Pris": 350
,

"_id": 2,
"Navn": "grønnsaker",
"Liste": ["rødbeter", "reddik", "kålrot", "gulrot."],
"Pris": 255
,

"_id": 3,
"Navn": "Snack Food",
"Liste": ["Popcorn", "Salted Peanuts", "Fries", "Baked Sweets", "Chocolates"],
"Pris": 400
,

"_id": 4,
"Navn": "Drikkevarer",
"Liste": ["Lemonade", "Milkshake", "Iced Tea", "Coffee", "Water", "Hot Chocolate"],
"Pris": 550
,
"_id": 5,
"Navn": "Sea Food",
"Liste": NULL,
"Pris": 300

])

Nå vises resultatene av å sette inn dokumentene i de følgende som erkjenner “True” og indikerer at alle dokumentene settes inn uten noen feil i den spesifiserte samlingen:


Anerkjent: sant,
Sett inn: '0': 1, '1': 2, '2': 3, '3': 4, '4': 5

Eksempel 1: Bruker MongoDB $ første operatør for å få den første verdien av matrisen

Som vi allerede har diskutert, samler den første operatøren det første elementet fra matrisefeltet i det spesifiserte dokumentet. I eksemplet bruker vi $ første operatør av MongoDB for å hente den første matrisefeltverdien fra alle dokumentene som er satt inn i "FoodItems" -samlingen. Vi distribuerer den samlede kommandoen der $ prosjektoperatøren er spesifisert. $ Prosjektoperatøren legger til det nye "FirstItem" -feltet som har $ første operatør sammen med uttrykket. $ Første operatøren tar navnet på "$ list" -array -feltet for å få det første elementet.

db.Matvarer.aggregat ([

$ prosjekt:
"FirstItem":
$ Først: "$ liste"



])

Vi kan se at $ første operatør returnerer den første verdien fra "$ list" -arrayen til alle dokumentene.

[
_id: 1, FirstItem: 'Apple',
_id: 2, FirstItem: 'rødbeter',
_id: 3, FirstItem: 'Popcorn',
_id: 4, FirstItem: 'Lemonade',
_id: 5, FirstItem: NULL
]

Eksempel 2: Bruke MongoDB $ første operatør for den ugyldige operanden

Vi vet at $ første operatør bare håndterer matriser. Men den første operatøren oppstår ved å gi en ugyldig operand. Her har vi et eksempel på å gi en ugyldig operand i $ første operatør for å heve forventningen. Vi bruker den samme spørringen som i forrige eksempel, men forskjellen er i $ første operatør der uttrykket endres. I stedet for å gi matrisefeltet fra dokumentene, legger vi inn "$ pris" -feltet som ikke inneholder matriseelementene. Når spørringen utføres, genereres feilen.

db.Matvarer.aggregat ([

$ prosjekt:
"Vare":
$ Først: "$ Pris"



])

Følgende MongoDB -feil oppstår fordi $ prisfeltet ikke er en matrise. $ Første operatør i MongoDB omhandler bare matriser som nevnt i følgende feil:

MongoServerError: planexecutor feil under aggregering :: forårsaket av :: $ Firsts argument må være en matrise, men er int

Eksempel 3: Bruke MongoDB $ første operatør for manglende og nullverdiene til matrisen

$ Første operatøren returnerer null hvis argumentet er et tomt utvalg av felt eller et manglende array -felt. Vi samsvarer med dokumentet som inneholder “_id” -verdien “5” fordi det inneholder null -array -elementet. Etter det satte vi $ første operatør i feltet $ Project Operator, "FirstListValue". $ Første operatøren har inndata -listen "-array -feltet for å få sitt første element.

db.Matvarer.aggregat ([
$ match: "_id": 5,
$ prosjekt:
"FirstListValue":
$ Først: "$ liste"



])

Som vi har sett i dokumentet “_ID: 5”, inneholder $ List -array -feltet nullverdien. Når den forrige $ første operatøren kjøres i skallet, gir det nullverdien.

[_id: 5, FirstListValue: NULL]

Eksempel 4: Bruke MongoDB $ Firstn -operatøren for de ndeverdiene av matrisen

Nå henter vi det nødvendige antall elementer fra matrisefeltet. For dette har vi $ Firstn -operatøren hvis implementering er litt forskjellig fra $ første operatør basert på funksjonaliteten. Der definerer vi “_id: 3” -uttrykket i $ Match -operatøren for å matche dokumentet med dette uttrykket. Deretter har vi et nytt "FirstListValue" -felt som er inkludert i $ Prosjektoperatøren. Det nye "FirstListValue" -feltet er ansatt med $ Firstn -operatøren der "Input" og "N" -argumentene er satt. "Input" -argumentet har navnet på "$ lister" -array -feltet. "N" -argumentet har heltallverdien til "2" som indikerer antall elementer som er hentet fra det medfølgende array -feltet.

db.Matvarer.aggregat ([
$ match: "_id": 3,
$ prosjekt:
"FirstListValue":
$ firstn: input: "$ list", n: 2



])

Vi skaffet oss to elementer fra følgende "$ liste" -array som nummeret er spesifisert til $ Firstn -operatøren:

[_id: 3, FirstListValue: ['Popcorn', 'Salted Peanuts']]

Eksempel 5: Bruke MongoDB $ første operatør for den første verdien av en matrise med tilstanden

I tillegg kan "N" -argumentet til $ Firstn -operatøren tilordnes med en verdi dynamisk. "N" -parameteren har en betinget uttalelse som er assosiert med den som informerer den om å hente det spesifiserte elementet fra matrisen når tilstanden er fornøyd. Tenk på følgende kommando av $ Firstn -operatøren. Vi gir $ Match -operatøren “_ID: 2” -dokument som skal matches for $ Firstn -operatøren. Etter det setter vi inn "FirstListValue" -feltet inne i $ Prosjektoperatøren. Deretter har vi en $ Firstn -operatør i det projiserte "FirstListValue" -feltet sammen med parameteren.

"Input" er den første parameteren som er satt i $ Firstn -operatøren med "$ listen" -feltet. Deretter er "n" -parameteren spesifisert med $ cond-operatøren som setter IF-ests-tilstanden. Inne i "hvis" har vi en annen tilstand som er "$ gt: [" $ pris ", 550]". Hvis $ prisen er større enn verdien av “550”, hentes “1” elementet. Ellers viser alternativet “annet” “3” elementer.

db.Matvarer.aggregat ([
$ match: _id: 2,
$ prosjekt:
"FirstListValue":
$ firstn: input: "$ list",
n: $ cond: if: $ gt: ["$ pris", 550], deretter: 1, ellers: 3




])

Operatøren på $ Firstn sender ut tre elementer i $ List -arrayen fordi prisverdien på $ er "350" av det gitte dokumentet som ikke er større enn den angitte verdien.

[_id: 2, FirstListValue: ['Beetroot', 'Radish', 'Turnip']]

Konklusjon

Denne artikkelen utforsket Mongodb $ først og $ Firstn -operatørene. For det første blir eksemplene på $ første operatør gitt med de forskjellige sakene. Eksemplet på den første operatøren oppnådde den første verdien av matrisen. Deretter returnerer den første operatøren nullverdien siden matrisefeltet har den manglende verdien. Etter det gis unntakseksemplet på $ første operatør for et ugyldig argument. $ Firstn -operatøren er spesifisert for å samle de nth elementene fra matrisen. Videre samler $ Firstn -operatøren elementene basert på tilstanden som er gitt til "n" -parameteren.