MongoDB $ Conatarrays

MongoDB $ Conatarrays

$ ConatArrays to ekspresja tablicy MongoDB, która jest stosowana w metodzie rurociągu agregacji. Operator $ ConatArrays służy do połączenia dwóch tablic dokumentów w jednej tablicy. Aby stworzyć unikalną tablicę, możemy połączyć więcej niż dwie tablice z operatorem $ ConatArrays. Ważną kwestią jest to, że operator $ ConatArrays rozwiąże tylko pól tablicy w MongoDB lub generuje błąd. Tablica musi być ważnym oświadczeniem dla $ Conatarrays, zanim będzie można ją przekonwertować na zmodyfikowaną tablicę. Operator $ ConatArrays zwraca null, jeśli którykolwiek z argumentów jest polem nieistniejącym lub ustępuje wartości zerowej. Ten artykuł zawiera dalsze informacje na temat operatora $ ConatArrays.

Jak korzystać z operatora $ ConatArrays w MongoDB

Używamy operatora $ ConatArrays w MongoDB, aby połączyć dwie tablice jako jedna tablica. Operator $ ConatArrays jest używany w dokumencie kolekcji „gier”. Kolekcja MongoDB „gier” jest ustawiona za pomocą następujących dokumentów za pomocą polecenia insertMany (). Dokumenty te zawierają również pola tablicy, które są używane przez $ ConatArrays Tutaj, aby do nich dołączyć.

db.Gry.wstrząs

„_id”: 1,
„Game”: „Piłka nożna”,
„Team1”: [„David”, „Mark”, „Levis”],
„Team2”: [„Sam”, „Alex”, „Orchid”],
„Score1”: [20, 14, 8],
„Score2”: [7, 19, 21]
,

„_id”: 2,
„Gra”: „Tennis”,
„Team1”: [„Bella”, „Emily”, „Alice”],
„Team2”: [„Stella”, „Bloom”, „Olive”],
„Score1”: [19, 15, 18],
„Score2”: [17, 10, 11]
,

„_id”: 3,
„Gra”: „Basketball”,
„Team1”: [„George”, „Smith”, „Polard”],
„Team2”: [],
„Score1”: [21, 15, 6],
„Score2”: [4, 13, 19]
,

„_id”: 4,
„Gra”: „Badminton”,
„Team1”: [„David”, „Mark”, „Levis”],
„Team2”: 0,
„Score1”: [20, 14, 8],
„Score2”: [7, 19, 21]

])

Kiedy uruchamiamy zapytanie INSERTMANY () w powładzie MongoDB, reprezentuje następujące wyniki:

potwierdzony: true, InsertedIds: '0': 1, '1': 2, '2': 3, '3': 4

Przykład 1: MongoDB $ ConatArrays Operator w celu połączenia tablicy liczb całkowitych

Używamy operatora MongoDB $ ConatArrays do połączenia tablicy elementów liczb całkowitych. Tutaj używamy pól wyniku 1 i $ wyników 2 do operacji, ponieważ zawierają one wartości liczbowe tablicy. Korzystamy z operatora Agregate (), w którym operator $ mecz pasuje do dokumentu, który spełnia warunek „„ Game ”:„ Football ””. Następnie korzystamy z operatora projektu $ do włączenia pola „NewArray”. Pole „NewArray” ma operatora $ ConatArrays, który wprowadza pól tablicy „$ SCORE1” i. Operator $ ConatArrays łączy wartości tych pól tylko dla dokumentu, którego pole „mecze” ma wartość „piłki nożnej”.

db.Gry.agregat([
$ mecz: „gam”: „piłka nożna”,
$ projekt:
NewArray: $ ConatArrays: [„$ SCORE1”, „$ score2”]]))

Tablica wyświetlana w polu „NewArray” zawiera wszystkie elementy pola ustawionego $ conatarrays. Zauważ, że każda powtarzana wartość nie jest dwukrotnie połączona w tablicy. Po prostu wydaje się, że pojedynczo w nowo wygenerowanej tablicy przez $ ConatArrays Operator.

[_id: 1, Newarray: [20, 14, 8, 7, 19, 21]]

Przykład 2: MongoDB $ ConatArrays Operator w celu połączenia tablicy ciągu

Używamy operatora $ ConatArrays, aby dołączyć do liczbowych wartości tablicy. Operator $ ConatArrays MongoDB łączy również wartość tablicy ciągów w jednej tablicy. Podobnie jak tablica liczb całkowitych, operator $ ConatArrays łączy unikalne elementy tablicy strunowej. Tutaj dopasowujemy dokument do wartości „tenisa” w stosunku do pola „gier”. Gdy dokument zostanie dopasowany przez $ Match Operator, stosujemy operator $ ConatArrays na polach tablicy strower, „$ Team1” i „$ Team2”. Prognozowane pole „Newarray” wyświetla wynikowy zestaw operatora $ ConatArrays.

db.Gry.agregat([
$ match: „game”: „tenis”,
$ projekt: Newarray:
$ ConatArrays: [„$ Team1”, „$ team2”]]))

Wartości ciągu pól „$ Team1” i „$ Team2” są połączone przez operatora $ ConatArrays w następującym polu „Newarray”:

[[[

_id: 2,
Newarray: [„Bella”, „Emily”, „Alice”, „Stella”, „Bloom”, „Olive”]

]

Przykład 3: MongoDB $ ConatArrays Operator w celu połączenia pustych tablic

Kiedy operator $ ConatArrays dołącza do pola tablicy z innym pustym pole, nie występują żadne zmiany. Pole tablicy, które zawiera wartości, pojawia się tylko w nowej zmodyfikowanej tablicy. Rozważmy działanie operatora $ ConatArrays w polu pustej tablicy. Najpierw przeszukujemy dokument, który ma pustą tablicę. Operator $ mecz jest używany do znalezienia dokumentu z polem „_id” i wartości „3”. Następnie mamy pole inkluzyjne „ArrayResult”, które jest zatrudnione w $ ConatArrays Operator. $ ConatArrays używa wyrażenia [„$ Team1”, „$ Team2”], aby połączyć je jako unikalną tablicę.

db.Gry.agregat([
$ match: _id: 3,
$ projekt:
_id: 0,
NewArray: $ ConatArrays: [„$ Team1”, „$ Team2”]


])

Wynikowa tablica po prostu wyświetla element pierwszej tablicy przez operatora $ ConatArrays, ponieważ druga tablica jest pusta.

[Newarray: [„George”, „Smith”, „Polard”]]

Przykład 4: MongoDB $ ConatArrays Operator w celu połączenia tablic innego typu

Operator $ ConatArrays bierze jedynie argument jako prawidłowe wyrażenie w celu rozwiązania tablic. MongoDB powoduje błąd, jeśli operatora $ ConatArrays nie można rozwiązać do tablicy. Oto zapytanie, w którym nieprawidłowe wyrażenie jest przekazywane w $ Conatarrays. Najpierw wdrażamy operator $ Match w metodzie agregate (), która pasuje do wyrażenia „_id: 4” do dokumentów kolekcji, z którą pracujemy. Następnie mamy operatora projektu $ do tłumienia pola „_id”, ponieważ „0” jest do niego przydzielony. Następnie mamy nowy dodatek pola „ArrayResult”, w którym przeprowadzana jest operacja $ ConatArrays. Operator $ ConatArrays tutaj wprowadza „$ Team1” Pole tablicy, które ma wartość straterem, a pole „$ Team2” nie jest tablicą. Ponadto pole $ Team2 ma rodzaj wartości całkowitej.

db.Gry.agregat([
$ match: _id: 4,
$ projekt:
_id: 0,
ArrayResult: $ ConatArrays: [„$ Team1”, „$ Team2”]


])

Tam napotykamy błąd serwera MongoDB jako operator $ ConatArrays, który próbuje dołączyć do tablicy z drugim typem.

„MongoServererror: Błąd planExecutor podczas agregacji :: spowodowany przez :: $ Conatarrays obsługuje tylko tablice, a nie INT”

Przykład 5: MongoDB $ ConatArrays Operator w celu połączenia tablicy brakującego pola

Gdy operator $ ConatArrays jest używany do dołączenia do tablicy pola, który nie istnieje w żadnym z dokumentów, null jest uzyskiwana na wyjściu. Rozważ stwierdzenie z przykładowym skryptem. Połączamy pól tablicy, dopasowując dokument „_id: 4” za pomocą operatora $ Match. Następnie mamy $ operator projektu, który określa pole „ResultarR”. Pole „ResultarR” ma operatora $ ConatArrays, który jest używany do dołączenia do pola „$ Team1”, które jest zawarte w określonym dokumencie z polem „$ Team3”, które nie jest częścią dokumentu.

db.Gry.agregat([
$ match: _id: 2,
$ projekt:
_id: 0,
Resultarr: $ ConatArrays: [„$ Team1”, „$ Team3”]


])

Gdy zapytanie jest wykonywane w skorupce MongoDB, „NULL” jest pobierany z $ Conatoperator, ponieważ pole Team3 $ nie jest zawarte w dokumencie „_id: 4”.

[Resultarr: null]

Wniosek

Ten artykuł dotyczy operatora MongoDB $ ConatArrays, który dołącza do wartości tablicy. Połączyliśmy tablice całkowitowe i tablice łańcuchowe za pomocą operatora $ ConatArrays. Następnie zastosowaliśmy operatora $ ConatArrays, aby połączyć pustą tablicę wypełnioną tablicą, która zakończyła się pierwszym elementem tablicy w wyjściu. Dołączyliśmy również do tablicy z brakującą tablicą, która zwraca wartość zerową. W końcu wzięliśmy przypadek operatora $ ConatArrays, w którym dołączyliśmy do tablic różnych typów.