Làm cách nào để tìm nạp dữ liệu từ nhiều bộ sưu tập trong MongoDB?
Tôi đang thực hành và thực sự mới với Truy vấn cơ sở dữ liệu MongoDb. Tôi có ba dữ liệu bộ sưu tập. Một bộ sưu tập là khách hàng, một bộ sưu tập là túi của khách hàng và bộ sưu tập cuối cùng là vải của khách hàng. Mỗi người trong số họ kết nối với id. Tôi đang sử dụng gói MongoDB để kết nối và truy vấn. Mục tiêu của tôi là khi vải của khách hàng được bán, nó sẽ tìm bagId từ bagId mà tôi muốn lấy thông tin của khách hàng. . Tôi thực sự không biết cách truy vấn MongoDB này Show
Dữ liệu khách hàng của tôi là như thế này
Đây là bộ sưu tập Túi
Đây là bộ sưu tập Vải của tôi - stackoverflow. comghi bàn. 0 Vui lòng tìm hiểu mô hình dữ liệu mongodb trước và không liên quan đến RDBMS Thêm câu hỏi với thẻ tương tựtại sao không chỉ tìm dữ liệu trong cả hai bộ sưu tập và sau đó chuyển cả hai đối tượng vào một hàm cộng vào tổng? 2nếu những gì bạn muốn làm là lấy tổng số tiền cho mỗi người dùng khác nhau, bạn có thể làm điều gì đó như thế này 3thì bạn sẽ có một đối tượng "sumForUser" với số tiền bạn muốn cho mọi người dùng. cái này bạn sẽ là một "bản đồ" của người dùng để tính tổng điều này cũng có thể được thực hiện theo nhiều cách khác nhau, bao gồm sử dụng các hàm rút gọn và các hàm mongoDB khác như MapReduce, v.v. có lẽ điều này có thể được giúp đỡ. cũng cái này và cái này 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
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 Đâ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
Tại đâ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 name và contact_name. Đâ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 ________số 8Ở đâ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 0Ở đâ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 1Vì 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 Chúng tôi có thể truy vấn nhiều bộ sưu tập trong MongoDB không?Bạn có thể truy vấn nhiều bộ sưu tập bằng cách sử dụng tổng hợp $lookup . Tôi đã viết một ví dụ ở đây trên diễn đàn. Ngoài ra, Nguồn dữ liệu kết quả truy vấn hoàn toàn có thể kết hợp kết quả từ một số truy vấn MongoDB. Không quan trọng bạn đã sử dụng cơ sở dữ liệu nguồn nào.
Làm cách nào để kết hợp dữ liệu từ nhiều bộ sưu tập thành một bộ sưu tập?Trong 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
Làm cách nào để lấy dữ liệu từ bộ sưu tập trong MongoDB?Để chọn dữ liệu từ một bộ sưu tập trong MongoDB, chúng ta có thể sử dụng phương thức findOne() . Phương thức findOne() trả về lần xuất hiện đầu tiên trong vùng chọn. Tham số đầu tiên của phương thức findOne() là một đối tượng truy vấn.
Làm cách nào để lấy dữ liệu từ hai bộ sưu tập trong cầy mangut?Mongoose - truy vấn để lấy dữ liệu từ nhiều bộ sưu tập . người sử dụng. js var mongoose = require('mongoose'); . Lược đồ; . . bình luận. js var mongoose = require('mongoose'); . Lược đồ; . . bưu kiện. js var mongoose = require('mongoose'); |