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ąsTutaj 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ć(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.