MongoDB $ anyelementTrue $ allelementStrue

MongoDB $ anyelementTrue $ allelementStrue

$ $ElementTrue i $ allelementStrue są operatorami rurociągów agregacyjnych MongoDB. Operator MongoDB $ AnyElementTrue potrzebuje tylko jednego wyrażenia jako parametru jako zestawu, który daje true, jeśli którykolwiek z elementów dostarczonych do zestawu ocenia się jako prawdziwy. To samo dotyczy $ AllelementStrue Operator. Jeśli którykolwiek z elementów tablicy jest prawdziwy, gdy tablica jest oceniana jako grupa, operator $ $ AnyElementTrue MongoDB zwraca prawdziwie. Ponadto operator $ ALLEElementTrue i $ AllelementStrue analizuje wszystkie inne elementy jako prawdziwe, w tym tablice i niezerowe wartości całkowite.

Jak możemy wykorzystać $ $ElementTrue i $ allelementStrue Operator w MongoDB?

Wykorzystanie $ ALLEElementTrue i $ AllelementStrue jest tutaj pokazane z przykładową implementacją w MongoDB Shell. Po pierwsze, jesteśmy zobowiązani do zdefiniowania kolekcji zawierającej dokumenty dotyczące wdrożenia $ AnyElementTrue i $ allelementStrue. Tutaj reprezentowaliśmy kolekcję MongoDB „Blogpost”, która będzie używana w tym artykule. Kolekcja „Blogpost” zawiera kilka dokumentów, które są najpierw zapytane o metodę INSERTMANY (). Za pomocą metody INSERTMY () wstawiliśmy następujący dokument, w którym kolumna „_id” wskazuje numer seryjny, a „komentarze” to kolumna tablicy określona za pomocą różnych elementów.

db.Post na blogu.wstrząs

„_id”: 1,
„Komentarze”: [prawda, fałsz]
,

„_id”: 2,
„Komentarze”: [1, True, 5]
,

„_id”: 3,
„Komentarze”: [NULL, FALSE, Undefined, 0]
,

„_id”: 4,
„Komentarze”: [true, [true]]
,

„_id”: 5,
"Uwagi" : []

])

Wyjście potwierdzające z powodzeniem dodało dokumenty w kolekcji MongoDB „Blogpost” jest wyświetlane w następujący sposób:


Uznany: prawda,
InsertedIds: '0': 1, „1”: 2, „2”: 3, „3”: 4, „4”: 5

Przykład nr 1: Korzystanie z operatora $ AnyElementTrue w MongoDB

Tutaj wykorzystaliśmy operator $ AnyElementTrue w MongoDB, który jest ustawiony za jednym wyrażeniem argumentu. Mamy metodę agregate (), w której definiowany jest operator projektu $. Operator projektu $ jest dalej zdefiniowany w polu „isanyelementTrue”, który wykorzystuje operator $ AnyElementTrue. Operator $ AnyElementTrue jest stosowany z pojedynczym wyrażeniem „[„ $ komentarze ”]”. Operator $ AnyElementTrue określa wartość z pola tablicy „$ komentarze”, która ocenia prawdziwe wyniki.

db.Post na blogu.agregat([
$ projekt: „komentarze”: 1, isanyElementTrue: $ anyElementTrue: ["$ komentarze"]
]);

Operator $ AnyElementTrue zwróci następujący wynik po wykonaniu powyższego zapytania. Wymieniono wszystkie wyniki, aby ocenić prawdziwe wartości w stosunku do każdego dokumentu.

[[[
_id: 1, komentarze: [true, false], isanyelementTrue: true,
_id: 2, komentarze: [1, true, 5], isanyelementTrue: true,
_id: 3, komentarze: [null, false, null, 0], isanyelementTrue: false,
_id: 4, komentarze: [true, [true]], isanyElementTrue: true,
_id: 5, komentarze: [], isanyElementTrue: false
]

Przykład nr 2: Korzystanie z operatora $ AnyElementTrue w MongoDB, gdzie żadna wartość nie jest prawdziwa

Gdy dokumenty nie zawierają żadnej prawdziwej wartości w polu tablicy, operator $ AnyElementTrue ocenia fałszywą wartość. Miejmy przykładową implementację operatora $ AnyElementTrue, w którym nie ma prawdziwego elementu w tablicy. Po pierwsze, mamy metodę agregate (), w której operator $ match jest ustawiony w warunkach „_id: 3” do dopasowania. Następnie ustawiliśmy polecenie $ Project, w którym pole „_id” jest wykluczone z wyjścia, ponieważ przypisana do niego wartość wynosi „0”. Następnie zdefiniowaliśmy operator $ AnyElementTrue w zmiennej $ Project Operator „IsAnyElementTrue”. Wprowadzimy wyrażenie „[$ komentarze]” do operatora $ AnyElementTrue, który oceni oczekiwane wyniki określonego dokumentu.

db.Post na blogu.agregat(
[[[
$ match: _id: 3,
$ projekt:
_id: 0,
isanyElementTrue: $ anyElementTrue: ["$ komentarze"]

]
)

Wyniki pokazały fałszywą wartość w wyjściu, ponieważ dokument „_id: 3” zawierał elementy tablicy „[NULL, FALSE, niezdefiniowany, 0]”. Operator $ AnyElementTrue zawsze ocenia fałszywe, gdy wartości tablicy są ustawione jako fałszywe, zerowe, niezdefiniowane lub 0.

[isanyElementTrue: false]

Przykład nr 3: Korzystanie z operatora $ AnyElementTrue w MongoDB dla zagnieżdżonej tablicy

Tablica jest sprawdzana na najwyższym poziomie przez $ AnyElementTrue Operator. Dlatego operacja $ $ElementTrue nie opada zagnieżdżonych tablic. Nie ma wpływu na wartość zagnieżdżonej tablicy, albo nie ma wpływu operator $. Zagnieżdżona tablica jest uważana za element, a $ anyelementTrue wskazuje, że jest to prawdą w tym przypadku. Wystarczy wziąć pod uwagę zapytanie $ AnyElementTrue Operator dla dokumentu, który ma zagnieżdżoną tablicę. Podaliśmy warunek „_id: $ in: [4]” do operatora $ mecz. Gdy znaleziono dokument, którego „_id” jest równy „4”, operator $ AnyElementTrue dowie się, czy pole „$ komentarze” ocenia wartość „true”.

db.Post na blogu.agregat(
[[[
$ match: _id: $ in: [4],
$ projekt:
isanyElementTrue: $ anyElementTrue: ["$ komentarze"]

]
)

W przypadku wyżej wymienionego zapytania wyniki są pokazane.

[_id: 4, isanyelementTrue: true]

Przykład nr 4: Korzystanie z operatora $ AllelementStrue w MongoDB

Teraz mamy przykład innego operatora MongoDB „$ allelementStrue”. $ AllelementStrue Operator podaje prawdziwą wartość wyjściową, gdy nie ma fałszywych wartości w tablicy dokumentu. Widzimy, że zapytanie $ allelementStrue jest prawie takie samo jak w przypadku $ AnyElementTrue. Tutaj stwierdziliśmy, że operator $ AllelementStrue to zmienna „IsallelementTrue” $ Project Operator. Następnie operator „$ allelementStrue” zawierał wyrażenie, w którym pole „$ komentarze” jest zdefiniowane w celu oceny wyników.

db.Post na blogu.agregat([
$ projekt: „komentarze”: 1, „_ id”: 0, IselementTrue: $ allelementStrue: [„$ komentarze”]
]);

Dane wyjściowe jest wymienione z wartościami pola tablicy „komentarze” i wyników w stosunku do każdego dokumentu zwróconego z $ allelementStrue Operator. Możemy uogólnić, że prawdziwa wartość jest uzyskiwana tylko z tych dokumentów, które nie mają fałszywych wartości.

[[[
Komentarze: [true, false], IselementTrue: false,
Komentarze: [1, true, 5], IselementTrue: true,
Komentarze: [null, false, null, 0], IsallelementTrue: false,
Komentarze: [true, [true]], IselementTrue: true,
Comments: [], IselementTrue: true
]

Przykład nr 5: Korzystanie z operatora $ allelementStrue w MongoDB pobiera fałszywą wartość

$ AllelementStrue zwraca wartość fałszywą, gdy mamy co najmniej jedną fałszywą wartość w tablicy. Rozważ zapytanie operatora $ AllelementStrue, który zwraca fałszywą wartość. Tutaj mamy operator $ Match zdefiniowany z wyrażeniem „_id: 1”, aby dopasować dokument. Następnie podaliśmy operatora projektu $, w którym operator $ allelementStrue jest wezwany do operacji wyrażenia „[„ $ komentarze ”]”.

db.Post na blogu.agregat([
$ match: _id: 1,
$ projekt:
_id: 0,
IsallelementTrue: $ allelementStrue: [„$ komentarze”]
]
)

Mamy fałszywe wyjście z powyższego zapytania, ponieważ istnieje jedna prawdziwa wartość tablicy i jedna wartość fałszywa w tablicy.

[isallelementTrue: false]

Przykład nr 6: Korzystanie z operatora $ allelementStrue w MongoDB na pustej tablicy

Operator $ allelementStrue podaje prawdziwą wartość w przypadku, gdy tablica nie została wypełniona żadnym elementem. Tutaj podaliśmy dokument, którego pole tablicy jest puste. Następnie zastosowaliśmy operator $ allelementStrue, który przyjmuje „komentarze” w terenie tego dokumentu, aby ocenić oczekiwany wynik.

db.Post na blogu.agregat(
[[[
$ match: _id: 5,
$ projekt:
IsallelementTrue: $ allelementStrue: [„$ komentarze”]

]
)

Dane wyjściowe generuje prawdziwą wartość, ponieważ dopasowany dokument zawiera pustą tablicę.

[_id: 5, IselementTrue: true]

Wniosek

Operatorzy MongoDB $ AnyElementTrue i $ AllelementStrue są omówione w artykule. Zbadaliśmy operatorów $ ALLEElementTrue i $ allelementStrue z podstawowymi i różnymi przypadkami. Po pierwsze, wyjaśniliśmy operator $ AllelementStrue w sprawie, gdy tablica nie jest określona z prawdziwą wartością. Następnie wzięliśmy przypadek operatora $ AnyElementTrue występującego w zagnieżdżonej tablicy. Następnie mamy $ allelementStrue, w którym po raz pierwszy omawiamy, gdy Fałsz zostanie uzyskany od tego operatora. Po drugie, otrzymaliśmy wyniki $ allelementTrue operator zastosowany na pustej tablicy.