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á[]
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á[]
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
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