Jak wykonujesz dołączenie do MongoDB

Jak wykonujesz dołączenie do MongoDB

MongoDB to baza danych typu NoSQL i przewiduje się, że te bazy danych nie są zgodne z RDBM (relacyjne systemy zarządzania bazą danych), a zatem nie zapewniają szeroko zakrojonych metod połączenia. Jednak koncepcja łączenia MongoDB jest inspirowana bazami danych SQL, ponieważ początkowo sam MongoDB nie dostarczył żadnej metody łączenia. Możesz dołączyć do dwóch kolekcji w MongoDB za pomocą $ Lookup Operator agregacji.

Pojedynczy zbiór może nie opisywać danych przechowywanych w nim; Jedna kolekcja może zawierać takie pola, które należy powiązać z polem innej kolekcji, aby opisać to pole. W tym celu możesz użyć operatora wyszukiwania metody agregacji. Jednak po wprowadzeniu $spojrzeć w górę Operator, użytkownicy mogą cieszyć się dołączeniem do dostępu w MongoDB.

W tym artykule krótko wyjaśniliśmy wykorzystanie operatora $ Lookup, a przedstawiono kilka przykładów, które pokazują mechanizm łączenia MongoDB.

Jak działa dołączenie w MongoDB

Ta sekcja zawiera podstawowy mechanizm pracy operatora $ Lookup, który jest stosowany w metodzie agregacji do wykonania połączenia w MongoDB. Składnia jest podana poniżej:

Składnia

> db.Nazwa kolekcji.agregat([

$ Lookup:

z: ,
Lokalne pole:
pole zagraniczne:
,
jako: „tablica”


])

Warunki używane w składni są tutaj wyjaśnione:

- Nazwa kolekcji: Nazwa kolekcji, na której jesteś obecny lub stosuje się operator wyszukiwania $

- z Kolekcja, której celem jest dołączyć

- Lokalne pole: To reprezentuje pole dokumentu w bieżącej kolekcji, która będzie używana do dopasowania do innych kolekcji

- Pole zagraniczne: Pole kolekcji (do połączenia), które może reprezentować cały dokument. (unikalny identyfikator)

- Jak: Zawiera pole tablicy, które jest tworzone po dołączeniu

Nadchodząca sekcja będzie zademonstrować dołączenie do dwóch kolekcji w bazie danych MongoDB.

Wymagania wstępne

Jak wspomniano wcześniej, z pomocą operatora $ Lookup, możesz dopasować dwie kolekcje bazy danych. Aby wykonać tę operację, musisz potrzebować dwóch kolekcji z bazy danych.

W tym poście użyliśmy „personel" I "informacje”Jako zbiór„Linuxhint" Baza danych. Zachowaj ostrożność podczas wybierania kolekcji, ponieważ możesz dołączyć tylko do dwóch kolekcji, które znajdują się w tym samym Baza danych.

„„personel”Kolekcja zawiera następujące dokumenty w nim: Polecenie wspomniane poniżej służy do pobierania dokumentów„personel" kolekcja.

> db.personel.znajdować().ładny()

I treść drugiej kolekcji ”informacje”Wyświetla się przez wydanie następującego polecenia:

> db.informacje.znajdować().ładny()

Jak dołączyć do dwóch kolekcji w MongoDB

W tej sekcji nauczysz się wykonać dołączenie do MongoDB. W tym celu wykonaliśmy akcję, aby dołączyć do „personel”Kolekcja z„informacje" kolekcja.

W poniższym poleceniu metoda agregowana ćwiczy operator $ Lookup, aby uzyskać informacje z obu kolekcji i dołączy do nich na podstawie następującego warunku:

Jeśli „Lokalne pole" z "personel„Kolekcja pasuje do„pole zagraniczne" z "informacje" kolekcja.

> db.personel.agregat([

$ Lookup:

Od: „Informacje”,
Localfield: „_id”,
pole zagraniczne: „_id”,
jako: „Staff_info”


])

Łączenie można zobaczyć w sekcji wyjściowej obrazu poniżej. Wykorzystaliśmy poniższą etykietę, aby zapewnić lepsze zrozumienie.

„„Wejście" I "wyjście”Etykiety pokazują odpowiednio wstawione polecenie i jego wynik. Dane obu kolekcji po dołączeniu są również oznaczone i pole tablicy „Personel_info”Zawiera dane„informacje”Kolekcja po dołączeniu.

Wniosek

MongoDB jest dobrze znany ze względu na obszerne wsparcie dla przetwarzania danych w bazie danych. Nie obsługuje jednak żadnej dedykowanej metody łączenia kolekcji, takich jak w bazach danych opartych na SQL. Alternatywa dla dołączenia, MongoDB obsługuje operator $ Lookup, którego można zastosować w metodzie agregacji do wykonania lewego połączenia. W tym samouczku z serii MongoDB wyjaśniliśmy zjawisko robocze operatora $ sharpUp w metodzie agregacji. Podążając za tym przewodnikiem, entuzjasta Mongo byłby w stanie dołączyć do jednej kolekcji z drugą…