MongoDB $ størrelse

MongoDB $ størrelse
Operatører er veldig nyttige når du trenger å utføre noe raskt uten å utføre komplekse spørsmål. MongoDB lar bruk av operatører forbedre funksjonaliteten og lage rask behandling i databasesystemet. En av disse operatørene av MongoDB er "størrelse" -operatøren som hittil brukes til å vise den eneste posten fra resten som inneholder et spesifikt antall felt i et av sine matrisefelt. Med andre ord, "størrelse" -operatøren kan brukes på et spesifikt matrisefelt for å sjekke om dette feltet har et spesifikt antall elementer i det og vise hele posten som matrisen tilhører. Derfor kommer denne guiden til å demonstrere bruken av "størrelse" -operatøren i MongoDB ved hjelp av noen enkle spørsmål.

Lage samling

La oss søke etter de allerede eksisterende databasene i vår MongoDB først. For dette skal vi åpne MongoDB -skallet og kjøre "Show DBS" -instruksjonen i spørringsområdet som angitt. Utgangen for denne instruksjonen viser 3 innebygde databaser med forskjellige størrelser mens vi jobber i en dummy "test" -database.

Test> Vis DBS
Admin 40.00 KIB
konfigurasjon 60.00 KIB
Lokal 72.00 KIB

Ved å bruke "bruk" -instruksjonen sammen med databasenavnet "Test", kan du bytte til hvilken som helst database som vi har gjort nedenfor. Utgangen viser at vi allerede bruker "test" -databasen.

Test> Bruk test
Allerede på DB -test

La oss vise alle tilgjengelige samlinger av en "Test" -database via "Show Collections" -spørsmålet. Utgangsdetaljene viser ingenting som vi ikke har noen samling akkurat nå.

Test> Vis samlinger;

Vi oppretter en ny samling som heter "Test" i "Test" -databasen som skal brukes videre. For dette har vi prøvd “DB” -spørsmålet med "CreateCollection" -funksjonen til MongoDB. Utgangsstatusen “OK: 1” viser at samlingen opprettes med hell.

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

Eksempel # 01:

Det er på tide å begynne med vårt første eksempel ved å legge til noen poster til "test" -samlingen som vi nettopp har opprettet. For å gjøre det, skal vi bruke "Sett inn" -funksjonen til MongoDB i den samme "DB" -forespørselen sammen med navnet på en samling "Test". Posten vi har lagt til inneholder 3 felt totalt. To av feltene er i matriseform i.E “PersonalDetails” og “AcademicRecord” inneholder underfelt. Bruken av krøllete parenteser viser det totale antallet poster i en samling og det totale antallet felt innen et bestemt felt. Poster er lagt perfekt.

Test> DB.Test.Sett inn (Navn: "Tina", PersonalDetails: [Age: 44, E -post: "[email protected] "],
… AcademicRecord: [Kvalifisering: "BS", CGPA: 3.8])
Avskrivningskort: Samling.Sett inn () er utdatert. Bruk insertone, innsats eller bulkwrite.

Anerkjent: sant,
Sett inn: '0': ObjectId ("63B389FDA7AC5549359EBA32")

For å få alle postene som vises på MongoDB -skallet, bruker vi Find () -funksjonen innenfor samme instruksjon etter samlingsnavnet som også følger FOREACH () -funksjonen. Funksjonen foreach () skriver ut postene i JSON -format som vist nedenfor.

Test> DB.Test.finne().Foreach (Printjson)

_ID: ObjectID ("63B389FDA7AC5549359EBA32"),
Navn: 'Tina',
Personlige opplysninger: [

Alder: 44,
E -post: '[email protected] '

],
Karakter utskrift: [

Kvalifisering: 'BS',
CGPA: 3.8

]

Det er på tide å bruke "størrelse" -operatøren for bare å vise posten med et bestemt antall felt i den. Så vi benyttet den i Find () -funksjonen for å få posten der PersonalDetails -feltet har 2 separate feltposter i seg, hver post i -brakettene. Utgangen viser ingenting fordi ingen poster har 2 felt innenfor PersonalDetails -feltet.

Test> DB.Test.Finn (PersonalDetails: $ størrelse: 2)

Når vi setter verdien av "størrelse" -operatøren til 1 og utfører den oppdaterte instruksjonen, har vi hele posten med de nestede feltene som vises på MongoDB -skallskjermen som nedenfor. Årsaken bak denne skjermen er klar: PersonalDetails har 1 post i henhold til brakettene.

Test> DB.Test.Finn (PersonalDetails: $ størrelse: 1)
[

_ID: ObjectID ("63B389FDA7AC5549359EBA32"),
Navn: 'Tina',
PersonalDetails: [Alder: 44, e -post: '[email protected] '],
AcademicRecord: [Kvalifisering: 'BS', CGPA: 3.8]

]

Eksempel # 02:

La oss legge til en annen-format-post i "Test" -samlingen for å se om størrelsesoperatøren fungerer på flere poster eller ikke. Den samme innsatsspørsmålet ble forventet å legge til poster for personen "Beba". Selv om vi har lagt til mer enn ett felt innen PersonalDetails og AcademicRecord -matrisen, legger du til disse feltene innenfor det ene par krøllete parenteser anser dem som en plate.

Test> DB.Test.Sett inn (Navn: "Beba", PersonalDetails: [Age: 44, E -post: "[email protected] ", by:" California "], AcademicRecord: [Kvalifisering:" MS ", CGPA: 3.9])

Anerkjent: sant,
Sett inn: '0': ObjectId ("63B38C57A7AC5549359EBA33")

Etter å ha lagt til den andre posten, prøvde vi den samme spørringen for å vise postene vi har i "Test" -samlingen. Begge postene ble vist i standardformatet for matriser i MongoDB.

Test> DB.Test.finne().ganske()
[

_ID: ObjectID ("63B389FDA7AC5549359EBA32"),
Navn: 'Tina',
PersonalDetails: [Alder: 44, e -post: '[email protected] '],
AcademicRecord: [Kvalifisering: 'BS', CGPA: 3.8]
,

_ID: ObjectID ("63B38C57A7AC5549359EBA33"),
Navn: 'Beba',
PersonalDetails: [Alder: 44, e -post: '[email protected] ', by:' California '],
AcademicRecord: [Kvalifisering: 'MS', CGPA: 3.9]

]

La oss utføre "Finn" -funksjonsspørringen for å vise postene til en testsamling mens vi bruker verdien av "$ størrelse" -operatøren som er satt til "3" som har blitt brukt på PersonalDetails -feltet. Ettersom PersonalDetails -feltet ikke inneholder mer enn 1 felt for nå, er utgangen null.

Test> DB.Test.Finn (PersonalDetails: $ størrelse: 3).ganske()

Nå oppdaterer verdien av "$ set" -operatøren til 1 som demonstrert fra spørringen nedenfor. Den angitte verdien “1” viser at den eneste posten vil bli vist på konsollskjermen der feltet “PeronalDetails” har en enkelt post i seg. Som begge hovedrekortene vi har lagt til, holder du enkeltfelt innenfor PersonalDetails -feltet i.e. , begge postene vises.

Test> DB.Test.Finn (PersonalDetails: $ størrelse: 1).ganske()
[

_ID: ObjectID ("63B389FDA7AC5549359EBA32"),
Navn: 'Tina',
PersonalDetails: [Alder: 44, e -post: '[email protected] '],
AcademicRecord: [Kvalifisering: 'BS', CGPA: 3.8]
,

_ID: ObjectID ("63B38C57A7AC5549359EBA33"),
Navn: 'Beba',
PersonalDetails: [Alder: 44, e -post: '[email protected] ', by:' California '],
AcademicRecord: [Kvalifisering: 'MS', CGPA: 3.9]

]

Eksempel # 03:

La oss sette inn en ny post i "Test" -samlingen via "Sett inn" -funksjonen. Denne gangen velger vi å legge til 3 felt innen PersonalDetails -feltet i denne samlingen, mens feltet “AcademicRecord” inneholder 2 poster i den. Vi bruker "størrelsesoperatøren på den.

Test> DB.Test.Sett inn (Navn: "Paul", PersonalDetails: [Age: 43, e -post: "[email protected] ", City:" Texas "], AcademicRecord: [Kvalifisering:" PhD ", CGPA: 4])

Anerkjent: sant,
Sett inn: '0': ObjectId ("63B38D59A7AC5549359EBA34")

Nå som vi har lagt til en nestet post i "Test" -samlingen, vil vi vise den på konsollskjermen ved hjelp av Find () -funksjonsinstruksjonen. For å vise en spesifikk post, må vi nevne navnet på ethvert felt etterfulgt av verdien i en bestemt post i.e., For å vise posten der "Navn" -feltet har sin verdi "Paul". Bare den siste ekstra posten ble vist.

Test> DB.Test.finn (navn: "Paul")
[

_ID: ObjectID ("63B38D59A7AC5549359EBA34"),
Navn: 'Paul',
PersonalDetails: [Age: 43, e -post: '[email protected] ', City:' Texas '],
AcademicRecord: [Kvalifisering: 'PhD', CGPA: 4]

]

La oss dykke inn i spørringseksemplet for å vise postene fra en samling “test” for å bare vise posten med PersonalDetails -feltstørrelsen lik 3 I.e., har 3 felt i det. For dette, prøv den samme Find () -funksjonen etterfulgt av feltnavnet “PersonalDetails”, “$ size” -operatør og den vakre () -funksjonen for å vise utgang i en matrise. Den siste posten som vi nettopp har lagt til, har blitt vist på konsollen da "PersonalDetails" -arrayen inneholder 3 feltoppføringer i den.

Test> DB.Test.Finn (PersonalDetails: $ størrelse: 3).ganske()
[

_ID: ObjectID ("63B38D59A7AC5549359EBA34"),
Navn: 'Paul',
PersonalDetails: [Age: 43, e -post: '[email protected] ', City:' Texas '],
AcademicRecord: [Kvalifisering: 'PhD', CGPA: 4]

]

Konklusjon

Etter å ha gått gjennom denne guiden sammen med tre av de nevnte kodeeksemplene, vil du kunne søke etter det spesifikke matrisefeltet fra en spesifikk datapost som bare inneholder det angitte antall elementer via størrelsesoperatøren til MongoDB. Vi har diskutert hvordan en flerfelts matrise kan brukes i posten for å få størrelsesoperatøren til å fungere ved hjelp av Find () -funksjonsinstruksjonen. I disse illustrasjonene fungerer størrelsesfeltet for å få alle disse postene som har vist som har et spesifikt felt med et bestemt antall poster i det.