Mongodb có hỗ trợ tham gia truy vấn giữa các bộ sưu tập không?
Trong hướng dẫn MongoDB này, Chúng ta sẽ tìm hiểu “Cách nối hai bộ sưu tập vào MongoDB”. Chúng tôi cũng sẽ đề cập đến điều này với các hoạt động khác nhau với các ví dụ. Đây là những chủ đề sau đây mà chúng ta sẽ đề cập trong hướng dẫn này Show
Mục lục Cái gì được sử dụng để tham gia bộ sưu tập trong MongoDB?Trong MongoDB, chức năng $lookup (aggregation) cho phép chúng ta nối các tài liệu trên các bộ sưu tập nằm trong cùng một cơ sở dữ liệu $lookup(aggregation) là một giai đoạn tạo liên kết bên ngoài bên trái với một tập hợp khác và hỗ trợ lọc tài liệu từ các tài liệu đã tham gia Nếu các tài liệu đến từ bộ sưu tập “đã tham gia”, hàm $lookup (tổng hợp) sẽ trả về các tài liệu dưới dạng một mảng con của bộ sưu tập gốc đích Đọc. Nhóm MongoDB theo nhiều trường MongoDB tham gia hai truy vấn bộ sưu tậpTrong MongoDB, chúng ta có thể kết hợp dữ liệu của nhiều bộ sưu tập thành một thông qua giai đoạn tổng hợp $lookup Trong phần này, bạn phải chỉ định bộ sưu tập nào bạn muốn kết hợp với bộ sưu tập hiện tại và chọn trường khớp với cả hai bộ sưu tập cú pháp Đây là cú pháp hoặc truy vấn đơn giản được sử dụng để nối hai tập hợp
Hàm $lookup lấy một tài liệu có các trường này FieldsDescriptionfromIt chỉ định bộ sưu tập trong cùng một cơ sở dữ liệu để thực hiện phép nối với. localFieldĐiều này được sử dụng để khớp bình đẳng trên localField với ForeignField từ các tài liệu của bộ sưu tập. ForeignFieldĐiều này được sử dụng để khớp bình đẳng trên ForeignField với localField từ các tài liệu đầu vào. asTrong phần này, chúng tôi chỉ định tên của trường mảng mới để thêm vào tài liệu đầu vào và trường mảng mới chứa các tài liệu phù hợp từ bộ sưu tậpĐây là một số trường mà chúng ta phải sử dụng khi sử dụng hàm $lookup Đọc. Nhập CSV vào MongoDB MongoDB tham gia hai bộ sưu tậpTrong MongoDB, chúng tôi sử dụng hàm $lookup(aggregation) để nối hai tập hợp. Chức năng này cho phép chúng tôi tham gia các tài liệu của các bộ sưu tập nằm trong cùng một cơ sở dữ liệu. Bạn sẽ hiểu rõ hơn với sự trợ giúp của các ví dụ Thí dụ Trong ví dụ này, chúng tôi tạo tập dữ liệu mẫu và chèn một số tài liệu
Chúng tôi đã chèn một số tài liệu vào bộ sưu tập địa chỉ Bây giờ, chúng tôi sẽ chèn một số tài liệu vào một bộ sưu tập khác
Ở đây, chúng tôi đã chèn một số tài liệu vào bộ sưu tập userInfo Lưu ý rằng, trường tên trong bộ sưu tập địa chỉ có cùng giá trị với contact_name trong bộ sưu tập userInfo Bây giờ, chúng ta áp dụng hàm $lookup và tìm kết quả là một phép so khớp đẳng thức
đầu ra
Ở đây, bạn có thể thấy trong kết quả đầu ra, chúng ta nối hai tập hợp trong đó chúng ta so khớp đẳng thức trong trường tên và tên liên hệ. Đây là cách đơn giản nhất để nối hai bộ sưu tập của cùng một cơ sở dữ liệu Đọc. Bộ sưu tập thả MongoDB Cách MongoDB tham gia hai bộ sưu tập với mệnh đề where?Trong MongoDB, để nối hai collection với mệnh đề where thì chúng ta sử dụng phương thức composite(). Điều này sẽ cho phép chúng tôi tương quan truy vấn con giữa hai bộ sưu tập Chúng tôi cũng sử dụng toán tử đường ống để áp dụng điều kiện. Hãy hiểu với sự giúp đỡ của một ví dụ Thí dụ Trong ví dụ này, chúng tôi tạo hai bộ sưu tập khác nhau và sau đó, chúng tôi tham gia bằng cách sử dụng tổng hợp tra cứu $ bằng cách áp dụng mệnh đề where MongoDB chèn tài liệu vào bộ sưu tậpỞ đây, chúng tôi tạo hai bộ sưu tập đơn đặt hàng và nhà kho và lưu trữ một số tài liệu trong đó. Bây giờ, chúng tôi áp dụng hoạt động tổng hợp để tham gia cả hai bộ sưu tập MongoDB tham gia hai bộ sưu tập với mệnh đề whereBạn có thể thấy đối với điều kiện mệnh đề where, chúng ta sử dụng hàm đường ống và áp dụng điều kiện để kiểm tra stock_item bằng order_item và sau đó nếu lượng hàng trong kho lớn hơn order_qty thì cộng với mặt hàng đó dưới dạng dữ liệu kho Đây là cách đơn giản nhất để áp dụng mệnh đề where với nối các tập hợp. Có một số cách khác để làm điều này mà bạn có thể học hỏi từ chính mình bằng cách thực hành nhiều hơn Đọc. Cách lưu trữ hình ảnh trong MongoDB MongoDB tham gia hai bộ sưu tập của một mảngTrong MongoDB, Hàm $lookup được sử dụng để nối hai tập hợp của một mảng khi localField là một mảng, bạn so khớp các phần tử mảng với ForeignFields mà không cần giai đoạn $unwind Thí dụ Trong ví dụ này, chúng tôi tạo hai bộ sưu tập khác nhau và lưu trữ một số tài liệu
Ở đây, chúng tôi đã chèn một số tài liệu vào bộ sưu tập các lớp
Đây, đây là một số tài liệu chúng tôi đã đưa vào bộ sưu tập của các thành viên. Bây giờ, chúng ta áp dụng phép toán tổng hợp và nối các tài liệu của tập hợp thành viên với tập hợp lớp
Ở đây, chúng tôi áp dụng tổng hợp tra cứu $ trên bộ sưu tập thành viên bằng cách sử dụng danh sách đăng ký trường của một mảng và hợp nhất hai bộ sưu tập với tên ForeignField và hiển thị đầu ra bên dưới đầu ra ________số 8Vì vậy, khi bạn có một mảng các trường trong tài liệu và bạn muốn hợp nhất các bộ sưu tập thì theo cách này, bạn có thể dễ dàng tham gia các bộ sưu tập Đọc. Nhóm MongoDB theo số lượng MongoDB tham gia hai bộ sưu tập theo idTrong chủ đề này, bạn sẽ tìm hiểu cách nối hai bộ sưu tập theo id. Như bạn đã biết rằng để tham gia bộ sưu tập, chúng tôi sử dụng tổng hợp tra cứu $ Ở đây, tôi sẽ giải quyết một ví dụ giúp bạn hiểu cách tham gia bộ sưu tập theo id của họ trong MongoDB Thí dụ Trong ví dụ này, chúng tôi tạo hai bộ sưu tập khác nhau và sau đó, chúng tôi tham gia bộ sưu tập theo id MongoDB chèn tài liệu vào bộ sưu tậpỞ đây, chúng tôi đã tạo hai bộ sưu tập đơn đặt hàng và mặt hàng và chèn một số tài liệu vào chúng Bây giờ, chúng tôi áp dụng thao tác tổng hợp $lookup để tham gia cả hai bộ sưu tập theo id của chúng MongoDB tham gia hai bộ sưu tập theo id của họNhư bạn đã biết, sẽ có mối quan hệ 1-1, bạn có thể hủy các kết quả tra cứu $ để có một mục được nhúng cho nhau. Sau đó, điều này sẽ hiển thị đầu ra bằng cách hợp nhất bộ sưu tập theo id của họ Đọc. Nhập JSON và chèn JSON vào MongoDB Cách MongoDB tham gia hai bộ sưu tập bằng cách sử dụng la bànTrong la bàn MongoDB, Để tham gia hai bộ sưu tập cơ sở dữ liệu, chúng tôi sử dụng chức năng tổng hợp tra cứu $. Nếu bạn muốn xem cách chúng tôi có thể thực hiện thì bạn sẽ hiểu rõ hơn với sự trợ giúp của một ví dụ Thí dụ Trong ví dụ này, chúng ta sẽ tìm hiểu cách sử dụng $lookup aggregation trong MongoDB compass để hợp nhất hai bộ sưu tập cơ sở dữ liệu Bây giờ, hãy làm theo các bước dưới đây để áp dụng thao tác tổng hợp trong la bàn
Ở đây, tôi đã tạo hai bộ sưu tập gen và phim vào cơ sở dữ liệu thử nghiệm và cũng đã chèn một số tài liệu vào cả hai bộ sưu tập
Sau khi chọn tổng hợp ở dưới cùng, có một “giai đoạn quy trình”, nơi có danh sách thả xuống và nơi bạn phải chọn thao tác mà bạn muốn thực hiện và ở đây chúng tôi chọn chức năng tra cứu $ Trong chức năng này, bạn phải cung cấp một số trường của bộ sưu tập. Trong trường từ, hãy viết tên bộ sưu tập mà bạn muốn tham gia (phim) và trong localField và ForeignField, hãy viết trường của bộ sưu tập cục bộ (danh sách thể loại) và trường “bộ sưu tập dạng” (loại) tương ứng và trong trường mảng đầu ra ghi (phim)
Đây là cách đơn giản nhất để áp dụng tổng hợp tra cứu $ bằng la bàn MongoDB. Bây giờ, nếu bạn thực hành nhiều hơn với MongoDB la bàn thì bạn sẽ hiểu rõ hơn về các thao tác tổng hợp và quen thuộc hơn với môi trường la bàn Đọc. Cách kiểm tra xem MongoDB đã được cài đặt chưa + Phiên bản MongoDB MongoDB tham gia hai bộ sưu tập từ cơ sở dữ liệu khác nhauTrong MongoDB, khi chúng tôi tham gia hai bộ sưu tập trong cùng một cơ sở dữ liệu thì chúng tôi thực hiện với sự trợ giúp của $lookup aggregation. Thao tác này sẽ tạo một liên kết bên ngoài bên trái với một tập hợp khác và hỗ trợ lọc các tài liệu từ các tài liệu đã tham gia Nhưng không có khái niệm nối hai bộ sưu tập từ các cơ sở dữ liệu khác nhau trong MongoDB nên chúng tôi không thể nối chúng Đọc. MongoDB sắp xếp theo ngày MongoDB tham gia hai bộ sưu tập bằng pythonTrong python, chúng ta cũng có thể thực hiện các thao tác tổng hợp MongoDB. Việc sử dụng thao tác tổng hợp là kết hợp đồng thời các giá trị của nhiều tài liệu và thực hiện nhiều thao tác khác nhau trên dữ liệu nhóm Ở đây, chúng ta tìm hiểu cách tham gia hai bộ sưu tập của cùng một cơ sở dữ liệu bằng python Thí dụ Trong ví dụ này, chúng tôi tham gia hai bộ sưu tập bằng python MongoDB chèn tài liệu vào bộ sưu tậpỞ đây, chúng tôi đã tạo cửa hàng tạp hóa và lưu trữ hai bộ sưu tập trước đó và chèn một số tài liệu vào chúng Bây giờ, hãy áp dụng tổng hợp tra cứu $ và tham gia cả hai bộ sưu tập bằng python MongoDB tham gia hai bộ sưu tập bằng cách sử dụng pythonỞ đây trước tiên, chúng tôi tạo kết nối giữa Python và MongoDB bằng cách sử dụng thư viện pymongo. Sau đó, truy cập cơ sở dữ liệu bằng cách sử dụng lớp myclient và sau đó sử dụng tổng hợp tra cứu $ để tham gia bộ sưu tập như chúng ta đã thực hiện trong cơ sở dữ liệu MongoDB. Điều này sẽ hiển thị đầu ra sau đầu ra Đầu ra sau khi nối hai bộ sưu tậpbằng python Bằng cách này, bạn có thể tham gia các bộ sưu tập cơ sở dữ liệu bằng cách sử dụng python Bạn cũng có thể thích đọc các bài viết sau
Trong hướng dẫn này, bạn đã học Cách kết hợp hai bộ sưu tập vào MongoDB trong các thao tác khác nhau với các ví dụ. Đây là những chủ đề sau mà chúng tôi đã đề cập trong hướng dẫn này
Bijay Tôi là Bijay có hơn 15 năm kinh nghiệm trong ngành công nghiệp phần mềm. Trong thời gian này, tôi đã làm việc trên MariaDB và sử dụng nó trong rất nhiều dự án. Hầu hết độc giả của chúng tôi đến từ Hoa Kỳ, Canada, Vương quốc Anh, Úc, New Zealand, v.v. Bạn muốn tìm hiểu MariaDB? . Ngoài ra, tôi là MVP của Microsoft Làm cách nào để tham gia hai bộ sưu tập trong truy vấn MongoDB?Thao tác THAM GIA MongoDB với hai bộ sưu tập được thực hiện bằng cách sử dụng toán tử tra cứu $ được phát triển có phiên bản 3. 2. Toán tử $lookup tiến hành một tài liệu có các trường bên dưới. Từ. Nó nêu bộ sưu tập trong cơ sở dữ liệu giống hệt nhau để thực hiện phép nối với nhưng với Hạn chế bộ sưu tập được chia nhỏ
Tại sao phép nối không được sử dụng trong MongoDB?Không tham gia vì mối quan hệ sẽ chỉ được đánh giá khi cần thiết . Mặt khác, một phép nối (trong cơ sở dữ liệu SQL) sẽ giải quyết các mối quan hệ và trả về chúng như thể chúng là một bảng duy nhất (bạn "nối hai bảng thành một").
Làm cách nào để lấy dữ liệu từ bộ sưu tập này sang bộ sưu tập khác trong MongoDB?Trong MongoDB, phương thức copyTo() được sử dụng để sao chép tất cả tài liệu từ một bộ sưu tập (Bộ sưu tập nguồn) sang bộ sưu tập khác (Bộ sưu tập đích .
MongoDB có hỗ trợ truy vấn phạm vi không?Chỉ mục lưu trữ giá trị của một trường cụ thể hoặc tập hợp các trường, được sắp xếp theo giá trị của trường. Thứ tự của các mục nhập chỉ mục hỗ trợ khớp đẳng thức hiệu quả và các hoạt động truy vấn dựa trên phạm vi. Ngoài ra, MongoDB có thể trả về kết quả được sắp xếp bằng cách sử dụng thứ tự trong chỉ mục |