MongoDB $ Pierwszy i $ Firstn Operatorzy

MongoDB $ Pierwszy i $ Firstn Operatorzy

Operatorzy pierwszej i $ Firstn to metoda rurociągu agregacji MongoDB. Pierwszy operator agregacji $ pozwala nam określić pierwszą wartość w tablicy. Pierwszy operator $ bierze tablicę tylko jako parametr wejściowy. Operator $ Firstn zwraca ustawioną liczbę wpisów z indeksu początkowego tablicy. Liczba określona dla operatora $ Firstn nie może być mniejsza niż „1”. Ponadto operator $ Firstn podaje oryginalną tablicę, jeśli zdefiniowana liczba jest większa lub równa wartościom tablicy.

Jak korzystać z operatorów pierwszych $ i $ Firstn w MongoDB

Operatorzy pierwszych $ i $ Firstn są używane w MongoDB, aby uzyskać wymaganą liczbę elementów z szeregu dokumentów. Operatorzy pierwszej i $ Firstn rozwiązują tylko pól tablicy w dokumentach kolekcji MongoDB. W tym artykule MongoDB pracujemy z kolekcją „FoodItems”. Dodajemy dokumenty w kolekcji „FoodItems”, która zawiera również pole tablicy, na którym funkcjonują $ First i $ Firstn Operators. Polecenie do dodania dokumentów jest tutaj reprezentowane, które wykorzystuje metodę insertMany () dla wstawienia jednocześnie.

db.Fooditems.wstrząs

„_id”: 1,
„Nazwa”: „owoce”,
„Lista”: [„Apple”, „Mango”, „Cherry”, „Kiwi”],
„Cena”: 350
,

„_id”: 2,
„Nazwa”: „warzywa”,
„Lista”: [„Beetroot”, „Rzodkiega”, „rzepa”, „marchewka."],
„Cena”: 255
,

„_id”: 3,
„Nazwa”: „Przekąska żywność”,
„Lista”: [„Popcorn”, „Solone orzeszki ziemne”, „Fries”, „Baked Sweets”, „Chocolates”],
„Cena”: 400
,

„_id”: 4,
„Nazwa”: „napoje”,
„Lista”: [„Lemonade”, „Milkshake”, „Iced Tea”, „Coffee”, „Water”, „Hot Chocolate”]],
„Cena”: 550
,
„_id”: 5,
„Nazwa”: „Sea Food”,
„Lista”: Null,
„Cena”: 300

])

Teraz wyniki wstawienia dokumentów są wyświetlane następująco, które potwierdzają „prawdziwe” i wskazują, że wszystkie dokumenty są wstawiane bez żadnego błędu w określonej kolekcji:


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

Przykład 1: Korzystanie z pierwszego operatora MongoDB $, aby uzyskać pierwszą wartość tablicy

Jak już omówiliśmy, First Operator $ zbiera pierwszy element z pola tablicy określonego dokumentu. W przykładzie używamy pierwszego $ operator MongoDB do pobrania pierwszej wartości pola tablicy ze wszystkich dokumentów wstawionych do kolekcji „FoodItem”. Wdrażamy polecenie agregatów, w którym określono operator $. Operator $ Project dodaje nowe pole „FirstItem”, które ma pierwszego operatora $ wraz z wyrażeniem. Pierwszy operator $ bierze nazwę pola tablicy „$ List”, aby uzyskać pierwszy element.

db.Fooditems.agregat([

$ projekt:
„FirstItem”:
$ najpierw: „$ lista”



])

Widzimy, że pierwszy operator $ zwraca pierwszą wartość z tablicy „listy $”.

[[[
_id: 1, FirstItem: „Apple”,
_id: 2, FirstItem: „Beetroot”,
_id: 3, FirstItem: „popcorn”,
_id: 4, FirstItem: „Lemonade”,
_id: 5, FirstItem: null
]

Przykład 2: Korzystanie z pierwszego operatora MongoDB $ dla nieprawidłowego operandu

Wiemy, że pierwszy operator $ zajmuje się jedynie tablicami. Ale pierwszy operator wynika z zapewnienia nieprawidłowego operandu. Tutaj mamy przykład podania nieprawidłowego operandu w pierwszym operatorze $, aby podnieść oczekiwania. Używamy tego samego zapytania jak w poprzednim przykładzie, ale różnica dotyczy pierwszego operatora $, w którym wyrażenie jest zmieniane. Zamiast podawać pole tablicy z dokumentów, wprowadzamy pole „$ cena”, które nie zawiera elementów tablicy. Po wykonywaniu zapytania błąd jest generowany.

db.Fooditems.agregat([

$ projekt:
"Przedmiot":
$ Najpierw: „$ cena”



])

Następujący błąd MongoDB występuje, ponieważ pole ceny $ nie jest tablicą. Pierwszy operator $ w MongoDB zajmuje się jedynie tablicami, jak wspomniano w następującym błędzie:

Mongoservererror: Błąd planExecutor podczas agregacji :: spowodowany przez :: $ First Argument musi być tablicą, ale IS INT

Przykład 3: Korzystanie z pierwszego operatora MongoDB $ dla brakujących i zerowych wartości tablicy

$ First Operator zwraca Null, jeśli argument jest pustym polem tablicy lub brakującym polem tablicy. Dopasowujemy dokument, który zawiera wartość „_id” „5”, ponieważ zawiera on element macierzy zerowej. Następnie ustawiliśmy pierwszego operatora $ w polu $ Project Operator, „FirstListValue”. Pierwszy operator $ ma pole tablicy wejściowej „$ List”, aby uzyskać swój pierwszy element.

db.Fooditems.agregat([
$ match: "_id": 5,
$ projekt:
„FirstListValue”:
$ najpierw: „$ lista”



])

Jak widzieliśmy w dokumencie „_id: 5”, pole tablicy $ LISTE zawiera wartość zerową. Gdy poprzedni $ Pierwszy operator jest uruchamiany w skorupce, daje wartość zerową.

[_id: 5, FirstListValue: null]

Przykład 4: Korzystanie z operatora MongoDB $ Firstn dla n -n -wartości tablicy

Teraz pobieramy wymaganą liczbę elementów z pola tablicy. W tym celu mamy operatora $ Firstn, którego wdrożenie różni się nieco od $ First Operator w oparciu o funkcjonalność. Tam definiujemy wyrażenie „_id: 3” w operatorze $ Match, aby dopasować dokument do tego wyrażenia. Następnie mamy nowe pole „FirstListValue”, które jest zawarte w $ Project Operator. Nowe pole „FirstListValue” jest stosowane w operatorze $ Firstn, w którym ustawiane są argumenty „wejścia” i „n”. Argument „wejściowy” ma nazwę pola tablicy „$ listy”. Argument „N” ma wartość liczbową „2”, która wskazuje liczbę elementów pobieranych z podanego pola tablicy.

db.Fooditems.agregat([
$ match: "_id": 3,
$ projekt:
„FirstListValue”:
$ FIRSTN: input: „$ lista”, n: 2



])

Otrzymaliśmy dwa elementy z następującej tablicy „$ List”, ponieważ liczba jest określona dla operatora $ Firstn:

[_id: 3, FirstListValue: ['popcorn', „solone orzeszki ziemne”]]

Przykład 5: Korzystanie z pierwszego operatora MongoDB $ dla n -th wartość tablicy z warunkami

Dodatkowo argument „N” operatora $ Firstn można dynamicznie przypisać wartość. Parametr „N” ma instrukcję warunkową, która jest z nim powiązana, która informuje go o pobraniu określonego elementu z tablicy, gdy warunek jest spełniony. Rozważ następujące polecenie operatora $ Firstn. Zapewniamy operator $ mecz z dokumentem „_id: 2” do dopasowania dla operatora $ Firstn. Następnie wstawiamy pole „FirstListValue” do $ operator projektu. Następnie mamy operatora $ Firstn w projekowanym polu „FirstListValue” wraz z jego parametrem.

„Wejście” to pierwszy parametr ustawiony w operatorze $ Firstn z polem „Lista $”. Następnie parametr „N” jest określony za pomocą operatora $ COND, który ustawia warunek IF-ELSE. Wewnątrz „If” mamy inny warunek, który jest „$ gt: [„ $ cena ”, 550]”. Jeśli cena $ jest większa niż wartość „550”, element „1” jest pobierany. W przeciwnym razie opcja „else” wyświetla elementy „3”.

db.Fooditems.agregat([
$ match: _id: 2,
$ projekt:
„FirstListValue”:
$ FIRSTN: input: „$ lista”,
n: $ cond: if: $ gt: ["$ cena", 550], następnie: 1, else: 3




])

Operator $ Firstn wyprowadza trzy elementy tablicy listy $, ponieważ wartość ceny $ wynosi „350” danego dokumentu, który nie jest większy niż określona wartość.

[_id: 2, FirstListValue: [„beetroot”, „rzodkiew”, „rzepa”]]

Wniosek

W tym artykule badano MongoDB $ pierwszy i operatorów $ Firstn. Po pierwsze, przykłady pierwszego operatora są wyposażone w różne przypadki. Przykład pierwszego operatora $ uzyskał pierwszą wartość tablicy. Następnie $ First Operator zwraca wartość zerową, ponieważ pole tablicy ma brakującą wartość. Następnie przykład wyjątku First Operator jest podany dla nieprawidłowego argumentu. Operator $ Firstn jest określony w celu zebrania n -th elementów z tablicy. Ponadto operator $ Firstn zbiera elementy na podstawie warunku, który jest podany parametrze „N”.