MongoDB $ Ceil og $ gulvoperatører

MongoDB $ Ceil og $ gulvoperatører

$ Ceil og $ gulvet er aritmetiske ekspresjonsoperatører som er tilgjengelige i MongoDB for bruk i de forskjellige stadiene av den samlede rørledningen. Operatøren på $ Ceil brukes til å hente den laveste heltallverdien som er større enn eller lik den gitte heltallverdien. Mens $ gulvoperatøren av MongoDB fungerer for å få det høyeste heltallet som er mindre eller lik den gitte verdien. MongoDB $ Ceil og $ gulvoperatørene aksepterer det gyldige uttrykket som evaluerer til en numerisk verdi.

Hvordan bruke MongoDB $ Ceil og $ gulvoperatører

Operatørene på $ Ceil og $ gulvet brukes på feltene til dokumentene som inneholder numeriske verdier. Så vi setter inn dokumentene sammen med de forskjellige feltene i "ExamsReport" -samlingen av MongoDB. Her bruker vi INSERTMANY -kommandoen for å legge til dokumentet med en gang. Representasjonen av å sette inn dokumentet i "ExamsReport" -samlingen er som følger:

db.Eksamenrapport.INSERTMANY ([

"_id": 1,
"Student": "Tan" ,
"Avdeling": "Det",
"Prosent": 98.99,
"CGPA": 3.9,
"Marks": "Internalmarks": 10.5,
"Eksterntemerker": 11.75
,

"_id": 2,
"Student": "Kim" ,
"Avdeling": "CS",
"Prosent": 88.45,
"CGPA": 3.68,
"Marks": "Internalmarks": 9.5,
"Eksterntemerker": 7.25
,

"_id": 3,
"Student": "Jenny" ,
"Avdeling": "CS",
"Prosent": 95.72,
"CGPA": 3.84,
"Marks": "Internalmarks": 8.5,
"Eksterntemerker": 9.75
,

"_id": 4,
"Student": "Harry" ,
"Avdeling": "SE",
"Prosent": 84.23,
"CGPA": 3.50,
"Marks": "Internalmarks": 5.65,
"Eksterntemerker": 7.28
,

"_id": 5,
"Student": "Charlie" ,
"Avdeling": "Det",
"Prosent": 81.3,
"CGPA": NULL,
"Marks": "Internalmarks": 4.5,
"Eksterntemerker": 6.9

])

Når dokumentene settes inn uten feilsøking, ser utdataene som genereres av MongoDB -skallet slik:


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

Eksempel 1: Bruke operatøren for $ Ceil i MongoDB

Operatøren på $ Ceil brukes her for å få taket på det medfølgende feltet fra dokumentet til "ExamsReport" -samlingen. Vi bruker Aggregate () -funksjonen der vi bruker $ prosjektoperatøren. Vi spesifiserer "student" -feltet med verdien av "1" som må inkluderes sammen med takverdiene. $ Prosjektoperatøren er deretter definert med "tak%" -attributtet. “Tak%” -attributtet er satt med "$ Ceil:" $ prosent " tilstand. "$ Ceil" -operatøren brukes her som tar "$ prosent" -feltet for å generere takverdien.

db.Eksamenrapport.aggregat (
[

$ prosjekt:

"Student": 1,
"Tak%": $ Ceil: "$ prosent"


]
)

Utgangen med det nye feltet "tak%" der takverdiene på feltprosenten fra $ Ceil -operatøren vises. Alle takverdiene er de minste tallene som er større enn eller lik prosentene.

[
_id: 1, student: 'tan', 'tak%': 99,
_id: 2, student: 'Kim', 'tak%': 89,
_id: 3, Student: 'Jenny', 'tak%': 96,
_id: 4, student: 'Harry', 'tak%': 85,
_id: 5, Student: 'Charlie', 'tak%': 82
]

Eksempel 2: Bruke $ Ceil Operator for det innebygde dokumentet i MongoDB

Nå distribuerer vi $ Ceil -operatøren for å finne den minste numeriske takverdien som er større enn eller lik verdien av "Internalmarks" -feltet til "Marks" -feltet. Først spesifiserer vi $ prosjektoperatøren i den samlede kommandoen. Deretter setter vi verdien av “1” for de innebygde “Marks.Internalmarks ”-felt som skal vises med resultatene. Etter det har vi en "takmark" -attributt som legges inn med $ Ceil Operator som "$ Ceil:" $ Marks.Internalmarks ””. Merk at $ Ceil -operatøren er tildelt med de innebygde "merkene.Internalmarks ”-felt for å hente takverdien til dette feltet.

db.Eksamenrapport.aggregat ([
$ prosjekt:
"Merker.Internalmarks ": 1,
Takmarks: $ Ceil: "$ Marks.Internalmarks "])

Resultatene viser hvor vi har de innebygde "Internalmarks" feltverdiene og takverdiene oppnås. De oppnådde takverdiene er alle avrundet av de faktiske verdiene til det spesifiserte feltet.

[
_id: 1, merker: Internalmarks: 10.5, takmark: 11,
_id: 2, merker: Internalmarks: 9.5, Takmarks: 10,
_id: 3, merker: Internalmarks: 8.5, Takmarks: 9,
_id: 4, merker: Internalmarks: 5.65, Takmarks: 6,
_id: 5, merker: Internalmarks: 4.5, Takmarks: 5
]

Eksempel 3: Bruke operatøren for $ Ceil for det manglende dokumentfeltet i MongoDB

Når $ Ceil-operatøren av MongoDB møter feltet Ikke-eksistens, gir det nullverdien. Tenk på spørringen der vi bruker $ Ceil Operator for å få den minste heltallverdien som er større enn eller lik feltet som ikke eksisterer i dokumentet. For dette bruker vi $ Match -operatøren der "" -avdelingen ":" it "" -uttrykk er gitt for å matche det aktuelle dokumentet. Deretter kaller vi $ prosjektoperatøren som legges inn med "student" -feltet med "1" heltallet som indikerer at bare "student" -feltet vises i utgangen. Deretter oppretter vi “CeilyMobile” -attributtet for at Ceil Operator skal ansettes. Vi gir feltet “$ Mobile_number” til $ Ceil Operator som er det manglende feltet "ExamsReport" -samlingsdokumenter.

db.Eksamenrapport.aggregat (
[
$ match: "avdeling": "it",

$ prosjekt:

"Student": 1,
CeilingMobile: $ Ceil: "$ Mobile_Number"


]
)

Der kan vi se at nullverdien er oppnådd mot "CeilingMobile" -attributtet siden ikke-eksistensfeltet er satt til $ Ceil-operatøren.

[
_id: 1, student: 'tan', takmobil: null,
_id: 5, Student: 'Charlie', CeilyMobile: NULL
]

Eksempel 4: Bruke $ gulvoperatøren i MongoDB

Her begynner vi med en annen $ gulvoperatør av MongoDB. Vi oppnår det største antallet fra $ gulvoperatøren som er mindre enn eller lik det gitte heltallet. Så vi stemmer overens. Etter det projiserer vi "CGPA" -feltet og "FloorCGPA" -attributtet i $ Prosjektoperatøren. "Floorcgpa" har "$ gulv:" $ cgpa "" -uttalelsen der $ gulvoperatøren brukes til å få den største verdien som er mindre enn eller lik verdiene til "$ cgpa" -feltet.

db.Eksamenrapport.aggregat ([
$ match: avdeling: "cs",
$ prosjekt:
CGPA: 1,
Floorcgpa: $ gulv: "$ cgpa"]))

Gulvoperatøren returnerer følgende verdier fra "CGPA" -feltet. "CGPA" er de faktiske verdiene og "gulvcgpa" er gulvverdiene.

[
_id: 2, CGPA: 3.68, gulvcgpa: 3,
_id: 3, CGPA: 3.84, gulvcgpa: 3
]

Eksempel 5: Bruke $ gulvoperatøren for nullverdien i MongoDB

$ Gulvet og $ Ceil -operatørene returnerer begge null når feltet inneholder nullverdien for å få tak og gulvverdier. Her tar vi et eksempel med $ gulvoperatøren. Vi spesifiserer "" _id ": 5" -dokumentet til $ Match -operatøren hvis "CGPA" -feltet har nullverdien. Deretter passerer vi det "CGPA" -feltet til $ Gulvoperatøren som er satt i "FloorValue" -attributtet til $ Prosjektoperatøren. Her returnerer operatøren på $ gulvet ganske enkelt nullutgangen fordi "CGPA" -verdien er "NULL".

db.Eksamenrapport.aggregat (
[
$ match: "_id": 5,

$ prosjekt:

"Student": 1,
"CGPA": 1,
FloorValue: $ gulv: "$ cgpa"


]
)

Følgende resultater genereres der "CGPA" -feltet har en nullverdi.

[_id: 5, CGPA: NULL, FloorValue: NULL]

Eksempel 6: Bruke operatøren på $ gulvet for NAN -operasjonen i MongoDB

Operatøren på $ gulvet så vel som $ Ceil -operatøren gir ut nan hvis argumentverdien er nan. Her har vi en implementering av denne uttalelsen. Vi finner dokumentet som lagrer "student" feltverdi som "Harry". Deretter påkaller vi $ gulvoperatøren i $ prosjektoperatøren og "Floor" -attributtet som er spesifisert med det udefinerte “$ gulvet:“ $ cgpa ” * 1” -uttrykk.

db.Eksamenrapport.aggregat (
[
$ match: "student": "harry",
$ prosjekt:
Gulv: $ gulv: "$ cgpa" * 1


]
)

"Gulv" -attributtet har "NAN" -verdien som er returnert fra $ gulvoperatøren.

[_id: 4, gulv: nan]

Konklusjon

Denne artikkelen handler om funksjonaliteten til MongoDB $ Ceil og $ gulvoperatører. Vi diskuterte først det grunnleggende eksemplet på både $ Ceil og $ gulvoperatører. Etter det tok vi de forskjellige scenariene for både $ Ceil og $ gulvoperatører. Først benyttet vi $ Ceil Operator på det innebygde dokumentet og brukte deretter $ Ceil Operator på feltet som ikke er en del av noe dokument. Deretter har vi tilfellene på $ gulvet som vi hentet null- og NAN -verdiene på grunn av de spesifiserte uttrykkene.