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.