mongoDB $ anyelementTrue $ allelementsTrue

mongoDB $ anyelementTrue $ allelementsTrue

AnyelementTrue og $ allelementsstrue er aggregeringsrørledningsoperatører av MongoDB. MongoDB $ anyelementTrue -operatøren trenger bare ett uttrykk som en parameter som et sett som gir sant hvis noen av elementene som er gitt til settet evaluerer å være sant. Det samme er tilfelle med $ allelementsstrue -operatøren. Hvis noen av matrisens elementer er sanne når en matrise blir evaluert som en gruppe, returnerer MongoDBs $ anyelementTrue -operatør sann. Dessuten analyserer operatøren på $ anyelementTrue og $ allelementsstrue alle andre elementer som sanne, inkludert matriser og ikke-null heltallverdier.

Hvordan kan vi bruke $ anyelementTrue og $ allelementsstrue -operatøren i MongoDB?

Bruken av $ anyelementTrue og $ allelementsstrue -operatøren demonstreres her med eksemplet implementering i MongoDB -skallet. For det første er vi pålagt å definere en samling som inneholder dokumenter for implementering av $ anyelementTrue og $ allelementsstrue -operatøren. Her har vi representert MongoDB -samlingen “Blogpost” som kommer til å bli brukt i denne artikkelen. Samlingen “Blogpost” inneholder flere dokumenter som først blir spurt med InsertMany () -metoden. Med InsertMany () -metoden har vi satt inn følgende dokument der "_id" -kolonnen indikerer serienummeret og "kommentarene" er array -kolonnen som er spesifisert med de forskjellige elementene.

db.Blogg innlegg.INSERTMANY ([

"_id": 1,
"Kommentarer": [sant, falsk]
,

"_id": 2,
"Kommentarer": [1, sann, 5]
,

"_id": 3,
"Kommentarer": [null, falsk, udefinert, 0]
,

"_id": 4,
"Kommentarer": [True, [True]]
,

"_id": 5,
"Kommentarer": []

])

Bekreftelsesutgangen la til dokumentene i MongoDB “Blogpost” -samlingen vises som følger:


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

Eksempel 1: Bruke $ anyelementTrue -operatøren i MongoDB

Her har vi brukt $ anyelementTrue -operatøren av MongoDB som er satt med et enkelt argumentuttrykk. Vi har Aggregate () -metoden der $ prosjektoperatøren er definert. $ Prosjektoperatøren er videre definert med feltet "IsanyElementTrue" som bruker $ AnyelementTrue -operatøren. AnyelementTrue -operatøren brukes med det enkelt uttrykket “[“ $ kommentarer ”]”. AnyelementTrue -operatøren bestemmer verdien fra array -feltet “$ kommentarer” som evaluerer de sanne resultatene.

db.Blogg innlegg.aggregat ([
$ prosjekt: "kommentarer": 1, isanyElementTrue: $ anyelementTrue: ["$ kommentarer"]
]);

AnyelementTrue -operatøren vil returnere følgende resultat etter utførelse av spørringen ovenfor. Den listet opp alle resultatene for å evaluere de sanne verdiene mot hvert dokument.

[
_id: 1, Kommentarer: [True, False], IsanyElementTrue: True,
_id: 2, kommentarer: [1, true, 5], isanyElementTrue: true,
_id: 3, kommentarer: [null, falsk, null, 0], isanyElementTrue: falsk,
_id: 4, kommentarer: [True, [true]], isanyElementTrue: true,
_id: 5, kommentarer: [], IsanyElementTrue: False
]

Eksempel nr. 2: Bruke $ anyelementTrue -operatøren i MongoDB der ingen verdi er sann

Når dokumentene ikke inneholder noen sann verdi i array -feltet, evaluerer $ anyelementTrue -operatøren den falske verdien. La oss få eksemplet implementering av $ anyelementTrue -operatøren der det ikke er noe sant element i matrisen. For det første har vi en aggregat () -metode der $ Match -operatøren er satt med tilstanden “_id: 3” som skal matches. Deretter har vi satt $ prosjektkommandoen der "_id" -feltet er ekskludert fra utdataene ettersom verdien som er tilordnet den er "0". Deretter har vi definert en $ anyelementTrue -operatør i $ prosjektoperatørvariabelen “IsanyElementTrue”. Vi har lagt inn uttrykket “[$ comments]” til $ anyelementTrue -operatøren som vil evaluere de forventede resultatene av det spesifiserte dokumentet.

db.Blogg innlegg.aggregat (
[
$ match: _id: 3,
$ prosjekt:
_id: 0,
IsAnyElementTrue: $ anyelementTrue: ["$ kommentarer"]

]
)

Resultatene viste den falske verdien i utdataene fordi dokumentet “_id: 3” inneholdt matriseelementene “[null, falsk, udefinert, 0]” der ingen verdi er sann. AnyelementTrue -operatøren evaluerer alltid til falske når arrayverdier er satt som falske, null, udefinerte eller 0.

[isanyElementTrue: falsk]

Eksempel nr. 3: Bruke $ anyelementTrue -operatøren i MongoDB for den nestede matrisen

Arrayen blir sjekket på toppnivå av $ anyelementTrue -operatøren. Derfor går ikke $ anyelementTrue -operasjonen nedover de nestede matriser. Den nestede matriseverdien enten sant eller usant påvirkes ikke av $ anyelementTrue -operatøren. Den nestede matrisen regnes som elementet og $ anyelementTrue indikerer at det er sant i dette tilfellet. Bare vurder $ AnyelementTrue Operator -spørringen for dokumentet som har nestet matrise. Vi har gitt en tilstand “_id: $ in: [4]” til en $ match -operatør. Når dokumentet hvis "_id" er lik "4", vil den $ anyelementTrue -operatøren finne ut om feltet "$ kommentarer" evaluerer verdien "True".

db.Blogg innlegg.aggregat (
[
$ match: _id: $ in: [4],
$ prosjekt:
IsAnyElementTrue: $ anyelementTrue: ["$ kommentarer"]

]
)

For den nevnte spørringen vises resultatene.

[_id: 4, IsanyElementTrue: True]

Eksempel 4: Bruke $ AllElementsstrue -operatøren i MongoDB

Nå har vi et eksempel på en annen MongoDB -operatør “$ allelementsstrue”. $ allelementsstrue operatør gir en ekte utgangsverdi når det ikke er falske verdier i rekke dokumentet. Vi kan se spørringen om $ allelementsstrue er nesten den samme som for $ anyelementTrue. Her spesifiserte vi at $ AllElementStrue -operatøren er variabelen “IsallElementTrue” for $ Prosjektoperatøren. Deretter inneholdt "$ allelementsstrue" -operatøren uttrykket der feltet "$ kommentarer" er definert for å evaluere resultatene.

db.Blogg innlegg.aggregat ([
$ Project: "Comments": 1, "_ id": 0, IsAllElementTrue: $ AllElementStrue: ["$ kommentarer"]
]);

Utgangen er oppført med matrisen "Kommentarer", og resultatene mot hvert dokument som er returnert fra $ AllElementStrue -operatøren. Vi kan generalisere at den sanne verdien bare oppnås fra de dokumentene som ikke har falske verdier.

[
Kommentarer: [True, False], IsAllElementTrue: False,
Kommentarer: [1, True, 5], IsAllElementTrue: True,
Kommentarer: [null, falsk, null, 0], isallelementTrue: falsk,
Kommentarer: [True, [True]], IsAllElementTrue: True,
Kommentarer: [], IsAllElementTrue: True
]

Eksempel 5: Bruke $ AllElementStrue -operatøren i MongoDB henter en falsk verdi

$ Allelementsstrue returnerer den falske verdien når vi har minst en falsk verdi i matrisen. Tenk på spørringen til $ AllElementStrue -operatøren som returnerer den falske verdien. Her har vi en $ Match -operatør definert med uttrykket “_id: 1” for å matche dokumentet. Etter det har vi gitt en $ prosjektoperatør der operatøren $ allelementsstrue blir kalt for operasjonen på uttrykket “[“ $ comments ”]”.

db.Blogg innlegg.aggregat ([
$ match: _id: 1,
$ prosjekt:
_id: 0,
IsAllElementTrue: $ allElementStrue: ["$ kommentarer"]
]
)

Vi har den falske utdata fra spørringen ovenfor fordi det er en ekte matriseverdi og en falsk verdi i matrisen.

[IsAllElementTrue: False]

Eksempel 6: Bruke $ AllElementsstrue -operatøren i MongoDB på den tomme matrisen

$ Allelementsstrue -operatøren gir den sanne verdien i saken når matrisen ikke er fylt med noe element. Her har vi gitt dokumentet hvis matrisefelt er tomt. Deretter brukte vi $ allelementsstrue -operatøren som tar feltet "kommentarer" av dette dokumentet for å evaluere det forventede utfallet.

db.Blogg innlegg.aggregat (
[
$ match: _id: 5,
$ prosjekt:
IsAllElementTrue: $ allElementStrue: ["$ kommentarer"]

]
)

Utgangen genererer den sanne verdien fordi det matchede dokumentet inneholder et tomt utvalg.

[_id: 5, IsAllElementTrue: True]

Konklusjon

MongoDB $ anyelementTrue og $ allelementstrue -operatører er diskutert i artikkelen. Vi har undersøkt $ anyelementTrue og $ allelementsstrue operatører med de grunnleggende og forskjellige tilfellene. For det første har vi forklart $ allelementsstrue -operatøren med saken når matrisen ikke er spesifisert med den sanne verdien. Deretter har vi tatt et tilfelle av $ anyelementTrue -operatøren som utfører på den nestede matrisen. Etter det har vi $ allelements Strue hvor vi først diskuterer når den falske oppnås fra denne operatøren. For det andre har vi fått resultatene fra $ AllElementTrue -operatøren brukt på den tomme matrisen.