MongoDB sjekk om dokumentene inneholder et felt

MongoDB sjekk om dokumentene inneholder et felt
Velkommen til en annen MongoDB -opplæring.

I denne vil vi lære hvordan du kan sjekke om et dokument i en gitt samling inneholder et visst felt ved bruk av $ eksisterer operatøren. Hvis det høres interessant ut, la oss hoppe inn.

Operatørsyntaks

La oss starte med det grunnleggende og diskutere syntaksen til $ eksisterer operatøren. Operatøren tar på seg en relativt enkel syntaks som avbildet i følgende kodebit:

Felt: $ eksisterer:

Operatøren samsvarer deretter med dokumentene som inneholder det spesifiserte feltet, inkludert hvor verdien av nevnte felt er null. Imidlertid, hvis den boolske verdien er falsk, returnerer operatøren alle dokumentene som ikke inneholder nevnte felt.

Hvis du kommer fra SQL -databasene, er denne operatøren ikke lik Exist -spørringen på SQL -språket.

Praktisk eksempel

Nok med teorien. La oss se på en praktisk samling og lære å bruke denne operatøren til å hente dokumentene som inneholder eller ikke inneholder et gitt felt.

Anta at vi har en samling med følgende dokumenter:

db.CreateCollection (“Ansatte”)

Vi kan deretter legge til en eksempeldata som følger:

db.ansatte.INSERTMANY ([

"_id": 1,
"First_name": "Raymond",
"Last_name": "Zanib",
"Status": "aktiv",
"Lønn": 100000
,

"_id": 2,
"full_name": "Alexandros Flower",
"Lønn": 110000,
"Status": "aktiv"
,

"_id": 3,
"full_name": "Umer McCulloch",
"Lønn": 109000,
"Språk": "En"

])

I det gitte eksemplet har vi tre dokumenter med varierende felt og verdier. La oss oppdage hvordan de kan hjelpe oss å forstå operatøren $.

Hente dokumentene med et gitt felt

Vi kan bruke operatøren $ for å hente alle dokumentene som inneholder feltet, "full_name". En eksempelforespørsel er som vist i følgende:

db.ansatte.finn ("full_name": $ eksisterer: true))

Siden vi setter $ eksisterer til sann, bør spørringen bare returnere dokumentene som inneholder det definerte feltet.

Et eksempelutgang er som vist:

[

_id: 2,
full_name: 'Alexandros blomst',
Lønn: 110000,
Status: 'aktiv'
,

_id: 3,
full_name: 'Umer McCulloch',
Lønn: 109000,
Språk: 'en'

]

Som vi kan se, inneholder begge dokumentene som returneres "full_name" -feltet.

Hent dokumentene som ikke inkluderer et bestemt felt

Vi kan også gjøre det motsatte. I følgende spørring bruker vi $ Eksister operatøren, men i stedet setter vi verdien til False, slik at dokumentet kan returnere dokumentene som ikke inkluderer settfeltet.

db.ansatte.finn ("full_name": $ eksisterer: falsk)

I dette tilfellet er det bare ett dokument som samsvarer med den faste tilstanden.

[

_id: 1,
First_name: 'Raymond',
Last_name: 'Zanib',
Status: 'aktiv',
Lønn: 100000

]

Konklusjon

Der har du det. Funksjonaliteten til $ operatøren er brutt ned for din forståelse. Følg med for flere opplæringsprogrammer.