wykonaj połączenie wewnętrzne w MongoDB za pomocą operatora agregacji $lookup

w MongoDB 3.2 wprowadził operator $lookup w ramach agregacji, który może być użyty do wykonania połączenia lewego.
należy pamiętać, że operacja danych MongoDB nie jest podobna do operacji
w relacyjnej bazie danych, dlatego zawsze zaleca się, aby odpowiednie dane znajdowały się w tym samym dokumencie
, które często używają razem. Ale w pewnym przypadku konieczne jest umieszczenie w dwóch różnych kolekcjach ze względu na różne
, aby uniknąć duplikacji danych, dla których mamy ciężkie operacje aktualizacji, użycie w wielu kolekcjach itp.

JOIN jest jedną z kluczowych różnic między bazą danych SQL i NoSQL, gdzie jako MongoDB agregacja $ lookup
operator jest pomocny i potężny, aby uzyskać JOIN dla dwóch kolekcji, takich jak robi to w RDBMS.

zobaczmy dalej:

składnia:

dowiedz się więcej o MEAN Stack
Development

jeśli pochodzisz ze świata RDBMS, możesz spodziewać się tego jako oddzielnego dokumentu łączącego wszystkie pola z lokalnej kolekcji
i zagranicznej, ale nie, wszystkie zagraniczne dokumenty zostaną dodane jako tablica lokalnego dokumentu kolekcji. Ponieważ wszystkie dokumenty zagraniczne
zostały dodane do dokumentu, możesz użyć tylko wtedy, gdy liczba zagranicznych dokumentów względnych jest ograniczona
i nie powoduje przekroczenia limitu rozmiaru dokumentu wynikowego.

Ex:

powiedzmy, że mamy dwie kolekcje 'orders’ I 'product’ z następującymi danymi.

zamówienia:

produkty:

teraz, aby pobrać zamówienie ze szczegółami produktu, możemy użyć poniżej

dokumenty wyników:

normalnie, order może zawierać wiele elementów, zobaczmy jak można wykonać $ lookup wewnątrz elementu array.

zmieńmy Kolekcje zamówień tak, aby wyglądały jak poniżej

w tym przypadku pozycje zamówienia znajdują się w tablicy, która
jest wymagana do rozwinięcia za pomocą operatora $unwind, który utworzy osobny dokument
dla każdego elementu, a następnie będzie można wykonać wyszukiwanie. Skrypt może wyglądać jak poniżej.

wyniki:

możesz nie chcieć użyć operatora $ lookup, aby uzyskać wszystkie zamówienia na dany produkt w innym słowie Dołącz zamówienia na
produkt. W przypadku najlepiej sprzedającego się produktu możemy mieć tysiące zamówień, a wszystkie dodane w ramach pojedynczej tablicy mogą spowodować
limit rozmiaru tablicy dokumentu.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

More: