MongoDB $ AnyelementStrue $ AllElementStrue

MongoDB $ AnyelementStrue $ AllElementStrue

Der $ AnyelementStrue und $ AllElementStrus sind die Aggregation Pipeline -Betreiber von MongoDB. Der MongoDB $ AnyLementStrue -Operator benötigt nur einen Ausdruck als Parameter als Satz, der wahr ist, wenn eines der dem Satz bereitgestellten Elemente als wahr bewertet. Gleiches gilt für den $ AllelementStrue -Operator. Wenn eines der Elemente des Arrays wahr ist, wenn ein Array als Gruppe bewertet wird. Darüber hinaus analysiert der $ AnyLementStrue und $ AllElementStrue-Operator alle anderen Elemente als wahr, einschließlich Arrays und ganz Null-Ganzzahlwerte.

Wie können wir den $ AnyElementStrue und den $ AllElementStrue -Operator in MongoDB verwenden??

Die Verwendung des $ AnyelementStrue und des $ AllelementStrue -Operators wird hier mit der Beispielimplementierung in der MongoDB -Shell demonstriert. Zunächst müssen wir eine Sammlung definieren, die Dokumente für die Implementierung des $ AnyElementStrue und des $ AllElementStrue -Operators enthält. Hier haben wir die MongoDB -Sammlung „Blogpost“ vertreten, die in diesem Artikel verwendet wird. Die Sammlung „Blogpost“ enthält mehrere Dokumente, die zunächst mit der InsertMany () -Methode abfragt werden. Mit der Methode InsertMany () haben wir das folgende Dokument eingefügt, in dem die Spalte „_id“ die Seriennummer angibt und die mit den verschiedenen Elementen angegebene Array -Spalte die Array -Spalte ist.

db.Blogeintrag.InsertMany ([

"_id": 1,
"Kommentare": [wahr, falsch]
,

"_id": 2,
"Kommentare": [1, wahr, 5]
,

"_id": 3,
"Kommentare": [Null, falsch, undefiniert, 0]
,

"_id": 4,
"Kommentare": [wahr, [wahr]]
,

"_id": 5,
"Kommentare" : []

]))

Die Bestätigungsausgabe hat die Dokumente in der MongoDB -Sammlung „Blogpost“ erfolgreich hinzugefügt, wie folgt:


Anerkannt: wahr,
InsertDIDs: '0': 1, '1': 2, '2': 3, '3': 4, '4': 5

Beispiel Nr. 1: Verwenden des $ AnyLementStrue -Operators in MongoDB

Hier haben wir den $ AnyLementStrue -Operator von MongoDB verwendet, der mit einem einzigen Argumentausdruck festgelegt ist. Wir haben die Aggregate () -Methode, bei der der $ -Projektbetreiber definiert ist. Der $ Project -Betreiber wird weiter mit dem Feld „isAnyElementStrue“ definiert, der den $ AnyElementStrue -Betreiber einsetzt. Der $ AnyLementStrue -Operator wird mit dem einzelnen Ausdruck "[" $ comments "] angewendet". Der $ AnyLementStrue -Operator bestimmt den Wert aus dem Feld Array -Feld „$ Kommentare“, der die tatsächlichen Ergebnisse bewertet.

db.Blogeintrag.Aggregat([
$ project: "comments": 1, isAnyElementStrue: $ AnyLementStrue: ["$ Kommentare"]
]);

Der $ AnyLementStrue -Betreiber gibt das folgende Ergebnis nach der Ausführung der obigen Abfrage zurück. Es wurde alle Ergebnisse aufgeführt, um die wahren Werte anhand jedes Dokuments zu bewerten.

[
_id: 1, Kommentare: [True, False], isAnyElementTrue: true,
_id: 2, Kommentare: [1, true, 5], isanyelementTrue: true,
_id: 3, Kommentare: [NULL, FALSE, NULL, 0], IsAnyElementStrue: False,
_id: 4, Kommentare: [True, [True]], IsAnyElementTrue: TRUE,
_id: 5, Kommentare: [], isAnyelementTrue: false
]

Beispiel Nr. 2: Verwenden des $ AnyLementStrue -Operators in MongoDB, bei dem kein Wert wahr ist

Wenn die Dokumente im Feld Array keinen echten Wert enthalten. Lassen Sie uns die Beispielimplementierung des $ AnyLementStrue -Operators haben, bei dem es kein echtes Element im Array gibt. Erstens haben wir eine Aggregate () -Methode, bei der der $ Match -Operator mit der Bedingung "_id: 3" festgelegt wird. Anschließend haben wir den Befehl $ project festgelegt, bei dem das Feld "_id" von der Ausgabe ausgeschlossen ist, da der ihm zugewiesene Wert "0" ist. Als nächstes haben wir einen $ AnyElementStrue -Operator in der Variablen „IsanyelementTrue“ von $ project operator definiert. Wir haben den Ausdruck „[$ comments]“ dem $ AnyLementStrue -Operator eingeben, der die erwarteten Ergebnisse des angegebenen Dokuments bewertet.

db.Blogeintrag.Aggregat(
[
$ Match: _id: 3,
$ project:
_id: 0,
isAnyElementStrue: $ AnyLementStrue: ["$ Kommentare"]

]
)

Die Ergebnisse zeigten den falschen Wert in der Ausgabe, da das Dokument "_id: 3" die Array -Elemente enthielt "[Null, Falsch, undefiniert, 0]", wobei kein Wert wahr ist. Der $ AnyLementStrue -Operator bewertet immer auf False, wenn die Array -Werte als false, null, undefiniert oder 0 festgelegt werden.

[isAnyelementTrue: false]

Beispiel Nr. 3: Verwenden des $ AnyLementStrue -Operators in MongoDB für das verschachtelte Array

Das Array wird vom obersten Level vom $ AnyLementStrue -Operator überprüft. Daher steigt die Operation von $ AnyLementStrus nicht ab, die verschachtelten Arrays. Der verschachtelte Array -Wert true oder false wird nicht vom $ AnyLementStrue -Operator beeinflusst. Das verschachtelte Array wird als Element angesehen, und $ AnyLementStrue zeigt an, dass es in diesem Fall wahr ist. Betrachten Sie einfach die Abfrage von $ AnyLementStrue -Operator für das Dokument, das das verschachtelte Array hat. Wir haben eine Bedingung „_id: $ in: [4] an einen $ Match -Operator gegeben. Wenn das Dokument, dessen „_id“ gleich „4“ ist, gefunden wird, wird der $ AnyLementStrue -Operator herausgefunden, ob das Feld „$ comments“ den Wert „TRUE“ bewertet.

db.Blogeintrag.Aggregat(
[
$ Match: _id: $ in: [4],
$ project:
isAnyElementStrue: $ AnyLementStrue: ["$ Kommentare"]

]
)

Für die oben erwähnte Anfrage werden die Ergebnisse gezeigt.

[_id: 4, isAnyelementTrue: true]

Beispiel 4: Verwenden des $ AllElementStrue -Operators in MongoDB

Jetzt haben wir ein Beispiel für einen anderen MongoDB -Operator „$ allelementStrue“. $ AllElementStrue -Operator gibt einen echten Ausgangswert an, wenn im Array des Dokuments keine falschen Werte vorhanden sind. Wir sehen. Hier haben wir angegeben, dass der $ AllelementStrue -Operator die Variable „IsallelementStrue“ des $ Project -Operators ist. Anschließend enthielt der Operator „$ AllElementStrue“ den Ausdruck, in dem das Feld „$ Kommentare“ definiert ist, um die Ergebnisse zu bewerten.

db.Blogeintrag.Aggregat([
$ project: "Kommentare": 1, "_ id": 0, isAllelementStrue: $ AllElementStrue: ["$ commenter"]
]);

Die Ausgabe ist mit den Feldwerten der Array „Kommentare“ aufgeführt und die Ergebnisse gegen jedes Dokument, das vom $ AllElementStrue -Operator zurückgegeben wurde. Wir können verallgemeinern, dass der wahre Wert nur aus den Dokumenten erhalten wird, die keine falschen Werte haben.

[
Kommentare: [True, False], isAllelementTrue: False,
Kommentare: [1, true, 5], isAllelementTrue: true,
Kommentare: [NULL, FALSE, NULL, 0], ISALLELEMENTTRUE: FALSE,
Kommentare: [True, [True]], isAllelementTrue: True,
Kommentare: [], isAllelementTrue: true
]

Beispiel Nr. 5: Die Verwendung des $ AllElementStrue -Operators in MongoDB ruft einen falschen Wert ab

Der $ AllElementStrue gibt den falschen Wert zurück, wenn wir mindestens einen falschen Wert im Array haben. Betrachten Sie die Abfrage des $ AllElementStrue -Operators, der den falschen Wert zurückgibt. Hier haben wir einen $ Match -Operator mit dem Ausdruck „_id: 1“ definiert, um dem Dokument übereinzustimmen. Danach haben wir einem $ Project -Betreiber gegeben, bei dem der Betreiber $ AllElementStrue für den Operation auf dem Ausdruck "[" $ comments ""] gefordert wird ".

db.Blogeintrag.Aggregat([
$ Match: _id: 1,
$ project:
_id: 0,
isAllelementStrue: $ AllElementStrue: ["$ Kommentare"]
]
)

Wir haben die falsche Ausgabe aus der obigen Abfrage, da es einen echten Array -Wert und einen falschen Wert im Array gibt.

[isAllelementTrue: false]

Beispiel 6: Verwenden des $ AllElementStrue -Operators in MongoDB auf dem leeren Array

Der $ AllElementStrue -Operator gibt den wahren Wert in dem Fall an, wenn das Array nicht mit einem Element gefüllt wurde. Hier haben wir das Dokument bereitgestellt, dessen Array -Feld leer ist. Dann haben wir den $ allelementStrue -Operator angewendet, der das Feld „Kommentare“ dieses Dokuments nimmt, um das erwartete Ergebnis zu bewerten.

db.Blogeintrag.Aggregat(
[
$ Match: _id: 5,
$ project:
isAllelementStrue: $ AllElementStrue: ["$ Kommentare"]

]
)

Die Ausgabe erzeugt den wahren Wert, da das übereinstimmende Dokument ein leeres Array enthält.

[_id: 5, isAllelementTrue: true]

Abschluss

Der MongoDB $ AnyelementStrue und $ AllElementStrue -Betreiber werden im Artikel erörtert. Wir haben die Operatoren $ AnyLementStrue und $ AllElementStrus mit den grundlegenden und verschiedenen Fällen untersucht. Erstens haben wir den $ AllelementStrue -Operator mit dem Fall erklärt, wenn das Array nicht mit dem wahren Wert angegeben ist. Als nächst. Danach haben wir $ AllElementStrue, bei dem wir zum ersten Mal diskutieren, wenn das Falsch von diesem Operator erhalten wird. Zweitens haben wir die Ergebnisse des Operators $ AllElementTrue auf dem leeren Array erhalten.