Chúng ta có thể tham gia hai bảng trong mongodb không?

MongoDB là một loại cơ sở dữ liệu NoSQL và có thể thấy trước rằng các cơ sở dữ liệu này không tuân theo RDBMS (Hệ thống quản lý cơ sở dữ liệu quan hệ) và do đó không cung cấp các phương thức THAM GIA rộng rãi. Tuy nhiên, khái niệm THAM GIA của MongoDB được lấy cảm hứng từ cơ sở dữ liệu SQL, bởi vì ban đầu, bản thân MongoDB không cung cấp bất kỳ phương thức tham gia nào. Bạn có thể THAM GIA hai bộ sưu tập trong MongoDB với sự trợ giúp của toán tử tổng hợp $lookup

Một bộ sưu tập đơn lẻ có thể không mô tả dữ liệu được lưu trữ bên trong nó; . Đối với điều này, bạn có thể sử dụng toán tử tra cứu $ của phương pháp tổng hợp. Tuy nhiên, sau khi giới thiệu toán tử tra cứu $, người dùng có thể tận hưởng quyền truy cập trong MongoDB

Trong bài viết này, chúng tôi đã giải thích ngắn gọn cách sử dụng toán tử $lookup và một vài ví dụ được trình bày cho thấy cơ chế tham gia của MongoDB

Cách tham gia hoạt động trong MongoDB

Phần này cung cấp cơ chế hoạt động cơ bản của toán tử $lookup, được sử dụng trong phương thức tổng hợp để thực hiện phép nối trong MongoDB. Cú pháp được cung cấp dưới đây

cú pháp

>db. tên bộ sưu tập. tổng hợp([
                           {
                          $lookup.
                            {
            từ. ,
localField.

trường nước ngoài.
,
                                như. "trường mảng"
                                      }
                                   }
                       ])

Các thuật ngữ được sử dụng trong cú pháp được giải thích ở đây

– tên bộ sưu tập. Tên bộ sưu tập mà bạn hiện diện hoặc toán tử tra cứu $ được áp dụng

– từ Bộ sưu tập, bạn đang nhắm mục tiêu tham gia

– trường địa phương. Điều này đại diện cho trường của tài liệu trong bộ sưu tập hiện tại sẽ được sử dụng để khớp với các bộ sưu tập khác

- vùng ngoại quốc. Trường của bộ sưu tập (được nối) có thể đại diện cho toàn bộ tài liệu. (id duy nhất)

- như. Điều này chứa một trường mảng được tạo sau khi tham gia

Phần sắp tới sẽ minh họa việc nối hai tập hợp trong cơ sở dữ liệu MongoDB

điều kiện tiên quyết

Như đã đề cập trước đó, với sự trợ giúp của toán tử tra cứu $, bạn có thể khớp hai bộ sưu tập cơ sở dữ liệu. Vì vậy, để thực hiện thao tác này, bạn phải cần hai bộ sưu tập từ cơ sở dữ liệu

Trong bài đăng này, chúng tôi đã sử dụng “nhân viên” và “thông tin” làm tập hợp cơ sở dữ liệu “linuxhint”. Hãy cẩn thận khi chọn một bộ sưu tập, bởi vì bạn chỉ có thể tham gia hai bộ sưu tập nằm trong cùng một cơ sở dữ liệu

Bộ sưu tập "nhân viên" chứa các tài liệu sau bên trong nó. lệnh được đề cập bên dưới được sử dụng để truy xuất tài liệu của bộ sưu tập "nhân viên"

> db. Nhân Viên. tìm thấy(). khá()

Chúng ta có thể tham gia hai bảng trong mongodb không?

Và nội dung của bộ sưu tập thứ hai “thông tin” được hiển thị bằng cách đưa ra lệnh sau

> db. thông tin. tìm thấy(). khá()

Chúng ta có thể tham gia hai bảng trong mongodb không?

Cách tham gia hai bộ sưu tập trong MongoDB

Trong phần này, bạn sẽ học cách thực hiện phép nối trong MongoDB. Vì vậy, chúng tôi đã thực hiện hành động tham gia bộ sưu tập “nhân viên” với bộ sưu tập “thông tin”

Trong lệnh được đề cập bên dưới, phương thức tổng hợp thực hiện toán tử $lookup để lấy thông tin từ cả hai tập hợp và sẽ nối chúng dựa trên điều kiện sau

Nếu bộ sưu tập “localField” của “staff” khớp với bộ sưu tập “foreignField” của “info”

>db. Nhân Viên. tổng hợp([
         {
                  $lookup.
                       {
                         từ. "thông tin",
localField. "_id",
foreignField. "_id",
as. "Staff_info"
                                    }
                               }
                           ])

Sự kết hợp có thể được nhìn thấy trong phần đầu ra của hình ảnh được dán bên dưới. Chúng tôi đã sử dụng nhãn sau để hiểu rõ hơn

Nhãn “Đầu vào” và “đầu ra” hiển thị lệnh được chèn và kết quả tương ứng. Dữ liệu của cả hai bộ sưu tập sau khi nối cũng được gắn nhãn và một trường mảng “Staff_info” chứa dữ liệu của bộ sưu tập “thông tin” sau khi nối

Chúng ta có thể tham gia hai bảng trong mongodb không?

Phần kết luận

MongoDB nổi tiếng vì hỗ trợ rộng rãi cho việc xử lý dữ liệu bên trong cơ sở dữ liệu. Tuy nhiên, nó không hỗ trợ bất kỳ phương pháp chuyên dụng nào để tham gia các bộ sưu tập như trong cơ sở dữ liệu dựa trên SQL. Thay thế cho Tham gia, MongoDB hỗ trợ toán tử tra cứu $ có thể được sử dụng trong phương thức tổng hợp để thực hiện nối trái. Trong hướng dẫn này của loạt bài MongoDB, chúng tôi đã giải thích hiện tượng hoạt động của toán tử $lookup trong phương thức tổng hợp. Bằng cách làm theo hướng dẫn này, một người đam mê Mongo sẽ có thể tham gia bộ sưu tập này với bộ sưu tập khác

Làm cách nào để hợp nhất hai dữ liệu bảng trong MongoDB?

Cách hợp nhất nhiều bảng SQL thành một bộ sưu tập MongoDB .
Câu chuyện về hai (hoặc nhiều) cơ sở dữ liệu SQL
Cách hợp nhất nhiều bảng SQL
1 – Kết nối với cơ sở dữ liệu SQL
2 – Xác định kết nối MongoDB đích
3 – Thêm bảng SQL
4 – Ánh xạ SQL sang MongoDB
5 – Xác định mối quan hệ một đối một
6 – Dọn dẹp bộ sưu tập MongoDB

Làm cách nào để nối hai bảng trong NoSQL?

Có hai cách để bạn có thể nối các bảng trong cùng một hệ thống phân cấp trong Cơ sở dữ liệu Oracle NoSQL. .
mệnh đề NESTED TABLES
TRÁI NGOÀI THAM GIA

Tại sao phép nối không được sử dụng trong MongoDB?

NoSQL == Không THAM GIA? . Lý tưởng nhất, không nên có mối quan hệ giữa các bộ sưu tập. Nếu cùng một dữ liệu được yêu cầu trong hai hoặc nhiều tài liệu, nó phải được lặp lại

NoSQL có hỗ trợ tham gia không?

Trong trường hợp NoSQL, dữ liệu cho một mục (hoặc điểm dữ liệu) chủ yếu được lưu trữ trong một bộ sưu tập. Tuy nhiên, có thể có trường hợp chúng tôi cần mở rộng nhiều bộ sưu tập để có được tất cả dữ liệu chúng tôi cần. Do đó, các truy vấn tham gia có tầm quan trọng quyết định đối với cả hai loại cơ sở dữ liệu