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.