Projekcja MongoDB

Projekcja MongoDB
Funkcja projekcji MongoDB pozwala nam wyodrębnić tylko niezbędne dane z dokumentu, a nie z całego zbioru danych. Projekcja wykorzystuje metodę FINK (), w której pola są określane do wyraźnie zwróconych i dołączanych o wartości „1” lub „0”. Gdy parametr projekcji ma wartość 1, wyświetli dokumenty na podstawie wyszukiwania. I aby zniknąć dowolne pole, parametr projekcji wprowadza wartość „0”. Projekcja jest ważnym czynnikiem w identyfikacji danych specyficznych dla użytkownika w danym zbiorze danych.

Jak używać projekcji do wyświetlania wymaganych danych w MongoDB?

Projekcja MongoDB jest oparta na metodzie bieżącej FINK (). W ten sposób możemy określić każde zapytanie projekcyjne wymagające znaczących zmian w metodzie bieżącej FINK (). Sposób, w jaki projekcja jest używana w MongoDB, jest taki: „Znajdź (, „ field_name ”:„ wartość ”)”. Składnia projekcji w MongoDB jest taka sama jak metoda Find (), ale dodajemy zestaw argumentów w metodzie Find (). Ten zestaw argumentów powiadamia instancję MongoDB, które pole danych zwrócić. Użyliśmy kolekcji „ciasto”, w którym wdrażany jest projekcja MongoDB. Ale w tym celu musimy dodać dokumenty do tej kolekcji. Zastosowaliśmy metodę MongoDB InsertMany () do wstawienia dokumentu. Zapytanie o wkładanie dokumentów do kolekcji „ciasta” jest następujące:

db.Ciasto.wstrząs

„_id”: 0,
„Nazwa”: „ciasto jabłkowe”,
„Kalorie”: 90.06,
„funty”: 2,
„Cena”: 540,
„Status”: „Dostępny”,
„Topping”: [JellyPrice: 50, Sprinkleprice: 90, FrostedPrice: 90]
,

„_id”: 1,
„Nazwa”: „ciasto czekoladowe”,
„Kalorie”: 150.00,
„funty”: 1,
„Cena”: 600,
„Status”: „Dostępny”,
„Topping”: [JellyPrice: 50, Sprinkleprice: 90, FrostedPrice: 90]
,

„_id”: 2,
„Nazwa”: „ciasto lodowe”,
„Kalorie”: 102.56,
„funty”: 3,
„Cena”: 640,
„Status”: „Niedostępny”,
„Topping”: [JellyPrice: 50, Sprinkleprice: 90, FrostedPrice: 90]
,

„_id”: 3,
„Nazwa”: „ciasto kawowe”,
„Kalorie”: 180.41,
„funty”: 2,
„Cena”: 720,
„Status”: „Dostępny”,
„Topping”: [JellyPrice: 50, Sprinkleprice: 90, FrostedPrice: 90]

])

Tutaj z powodzeniem wstawiliśmy dokument pokazany na obrazie do użycia techniki projekcji.

Przykład nr 1: Projekcja MongoDB dla określonego pola.

Tutaj pobraliśmy tylko pojedyncze pole, przekazując parametr projektu do metody Find (). Mamy następujące zapytanie, w którym metoda Find () przyjmuje puste kryteria wyboru i parametr projekcji. Parametr projekcji wprowadza pole „nazwa”, które jest przypisywana wartością numeryczną „1” do wyświetlania tylko tego pola jako wyjścia. _Id jest ustawiony z wartością „0”, ponieważ metoda FINK () zawsze zwraca pole _id w wyjściu.

db.Ciasto.Znajdź (, nazwa: 1, _id: 0)

Wszystkie dokumenty są pokazane poniżej, ale z tylko jednym „nazwa” pola wraz z odpowiednią wartością, ponieważ projekcja jest stosowana do tego pola.

Przykład nr 2: projekcja MongoDB dla wielu pól.

Teraz określamy wiele pól do parametru projekcji metody find (), aby wyświetlić dane tylko dla tych pól z dokumentów. Tutaj mamy zapytanie projekcyjne, które jest ustawione w polu „nazwa” i „kalorie”. Ponieważ te pola są przypisywane wartość „1”, która wskazuje, że dane tylko tych pól są pobierane po uruchomieniu zapytania projekcyjnego.

db.Ciasto.Znajdź (, „_id”: 0, „nazwa”: 1, „kalorie”: 1)

Dlatego pomyślnie pobraliśmy dane tylko tych pól, które są ustawione jako parametr projekcji.

Przykład nr 3: Projekcja MongoDB dla określonego warunku.

Dostarliśmy oświadczenie projekcyjne we wspomnianym przykładzie bez kryteriów wyboru. Teraz używamy instrukcji projekcji wraz z warunkiem. W poniższym zapytaniu projekcyjnym zastosowaliśmy metodę Find (), w której najpierw ustaliliśmy kryteria wyboru, że „status” pola powinien być równy wartości „dostępnej”. Następnie wprowadzamy pola „funty” i „cena” jako parametr projekcji o wartości „1”. Te pola wyświetlały tylko dane dokumentów, które spełniały warunek „Status:„ Dostępny ”.

db.Ciasto.znajdować(
Status: „Dostępny”,
„funty”: 1, „cena”: 1
)

Mamy tylko trzy dokumenty, których status jest „dostępny”, który jest pokazany na wyjściu z pola ustawionymi jako projekcja.

Przykład nr 4: Projekcja MongoDB dla określonego pola, z wyjątkiem wykluczonych pól.

W tym zapytaniu projekcyjnym zaznaczyliśmy pola wartością „0”, aby wykluczyć je z zwróconego dokumentu. Wdrażaliśmy metodę Find (), w której wyrażenie „status: dostępny” i zestaw argumentów projekcji. Parametr projekcyjny dostarczył pola „status” i „cena” o wartości „0”. Wartość „0” wskazuje, że pola te nie pojawią się, gdy dokument danych kryteriów zostanie zwrócony.

db.Ciasto.Znajdź (Status: „Dostępny”, Status: 0, cena: 0)

Te pola, których status jest „dostępny” w dokumentach, są wyświetlane na obrazie, z wyjątkiem wyłączonego statusu i ceny pola.

Przykład nr 5: Operator projekcji MongoDB „$ slice”.

Zapytanie projekcyjne optymalizuje wyszukiwanie i zmniejsza przepływ pracy, gdy jego operatorzy są wykorzystywani. Mamy kilku operatorów zapytań projekcyjnych, z których w tym przykładzie użyliśmy operatora $ Slice. Operator $ plaster ogranicza liczbę dokumentów zwróconych jako wyjście zapytania projekcyjnego. Tutaj mamy zapytanie projekcyjne operatora $ slice. Przywołaliśmy metodę Find (), która jest zdefiniowana za pomocą pustego parametru, w którym ustawiony jest warunek. Następnie ustawiliśmy metodę Find () z parametrem projekcji. Parametr projekcyjny jest określony w instrukcji „funty: $ slice: 3”. Pole „funty” wykorzystuje operator $ plaster, który jest ustawiony o wartości „3” do związania dokumentów zwróconych w wyjściu.

db.Ciasto.Znajdź (, funts: $ slice: 3)

Poniższy obraz wyświetlono tylko trzy dokumenty w wyjściu, ponieważ operator $ plaster instrukcji projekcji ogranicza go o daną wartość.

Przykład nr 6: Operator projekcji MongoDB „$ elematch”.

Teraz użyliśmy innego operatora projekcyjnego „$ ELEMACH”. Operator $ ELEMMATCH projektuje pierwszą dopasowaną wartość z tablicy. Wyrażenia zapytania $ nie są obsługiwane przez $ elemmatch operatora projekcji. Ponadto wymagany jest jawny warunek dla operatora projekcji $ ELEMMATCH. Ustanowiliśmy zapytanie projekcyjne, w którym kryteria wyboru są najpierw przypisane do metody Find () i wdrażana jest projekcja. W przypadku parametru projekcyjnego dostarczyliśmy pole „uzupełniania”. Pole „Topping” ma operator $ ELEMACH, w którym warunek „Sprinkleprice”: 90 do dopasowania elementów z tablicy.

db.Ciasto.Znajdź („name”: „Ice Cake”, Topping: $ elemMatch: "SprinklePrice": 90))

Są to dokumenty, które pobraliśmy w wyjściu po operator $ elalematch zapytania o projekcję.

Wniosek

Przewodnik zbadał funkcjonalność projekcji MongoDB. Projekcja MongoDB odnosi się do gromadzenia tylko odpowiednich danych, a nie do całego zestawu danych dokumentu. Nauczyliśmy się, jak korzystać z zapytania do projekcji, aby uzyskać niezbędne dane z danego zbioru. Wykonaliśmy kilka zapytań projekcyjnych, aby uwzględnić i wykluczyć określone pola za pomocą wartości „1” i „0”. Dodatkowo użyliśmy również operatorów projekcji „$ slice” i „$ elematch” w zapytaniu projekcyjnym.