Tra cứu ví dụ java MongoDB
Khi làm việc trên một dự án, có thể có nhu cầu hợp nhất hai tài liệu hoặc một số trường cụ thể trong tài liệu. Nếu đó là trường hợp, bạn đang ở đúng nơi. MongoDB cung cấp cho người dùng khả năng tổng hợp dữ liệu họ muốn, miễn là dữ liệu đó có trong cùng một cơ sở dữ liệu Show
Chúng tôi sử dụng toán tử Tra cứu MongoDB để đạt được điều tương tự Toán tử MongoDB Lookup, theo định nghĩa, “Thực hiện liên kết bên ngoài bên trái với một tập hợp không được chia sẻ trong cùng một cơ sở dữ liệu để lọc các tài liệu từ tập hợp “đã tham gia” để xử lý. ” Nói một cách đơn giản, sử dụng toán tử Tra cứu MongoDB để có thể hợp nhất dữ liệu từ tài liệu mà bạn đang chạy truy vấn và tài liệu mà bạn muốn lấy dữ liệu từ đó Tuy nhiên, trước khi chuyển thẳng sang cách hoạt động của toán tử tập hợp trình xem MongoDB và cách sử dụng nó, chúng ta sẽ thảo luận ngắn gọn về Tập hợp trong MongoDB. Và nguyên lý hoạt động của MongoDB looker Operator. Chúng tôi cũng sẽ thảo luận chi tiết về cú pháp cho từng tình huống và trường hợp, đồng thời đưa ra một số ví dụ thực tế. Hãy bắt đầu nào Mục lụcTập hợp trong MongoDB là gì?Quá trình thu thập dữ liệu để trả về kết quả được tính toán được gọi là Tổng hợp trong MongoDB. Trước tiên, quy trình yêu cầu thu thập các điểm dữ liệu cần thiết, sau đó nhóm chúng lại với nhau theo mức độ liên quan để thực hiện các thao tác như tổng, trung bình, tối thiểu, tối đa, v.v. Vì vậy, nói chung, tổng hợp trong MongoDB tương tự như trong SQL. Ba trường hợp sử dụng được đánh giá cao cho các hoạt động tổng hợp như sau
Có ba cách để thực hiện tổng hợp trong MongoDB
Toán tử Tra cứu MongoDB là gì?Theo định nghĩa, toán tử tra cứu MongoDB tận dụng phương thức liên kết ngoài bên trái để hợp nhất thông tin từ tài liệu này sang tài liệu khác. Sử dụng toán tử tra cứu $, bạn có thể thêm một trường bổ sung vào tài liệu hiện có để làm sáng tỏ thông tin Ví dụ: bạn có thể ánh xạ một trường chứa ba chữ số cuối của ID nhân viên với tên bộ phận của bạn bằng cách thêm trường Tên bộ phận vào đầu ra được tạo. Tuy nhiên, toán tử Tra cứu MongoDB hoạt động như thế nào? Trong các hoạt động tra cứu $, chúng tôi có hai đầu vào bộ sưu tập được yêu cầu. 'Bộ sưu tập đầu vào' và 'từ bộ sưu tập. ’ 'Bộ sưu tập đầu vào' thu thập thông tin cơ sở dữ liệu mà thao tác tra cứu $ được thực hiện trên đó. Mặt khác, 'từ bộ sưu tập' thu thập thông tin từ cơ sở dữ liệu mà chúng tôi muốn hợp nhất tài liệu chính với Đơn giản hóa MongoDB ETL bằng Đường ống dữ liệu không mã của HevoDữ liệu Hevo là Đường ống dữ liệu không mã cung cấp giải pháp được quản lý hoàn toàn để thiết lập Tích hợp dữ liệu cho hơn 100 nguồn dữ liệu (Bao gồm hơn 40 nguồn miễn phí) và sẽ cho phép bạn tải trực tiếp dữ liệu từ các nguồn như MongoDB đến Kho dữ liệu hoặc Đích Hevo sẽ tự động hóa luồng dữ liệu của bạn trong vài phút mà không cần viết bất kỳ dòng mã nào. Kiến trúc chịu lỗi của nó đảm bảo rằng dữ liệu của bạn được an toàn và nhất quán. Hevo cung cấp cho bạn một giải pháp thực sự hiệu quả và hoàn toàn tự động để quản lý dữ liệu theo thời gian thực và luôn có sẵn dữ liệu để phân tích. Bắt đầu với Hevo miễn phíCùng điểm qua một số tính năng nổi bật của Hevo
Các cú pháp được sử dụng cho các hoạt động tra cứu MongoDBCú pháp cho các thao tác Tra cứu MongoDB khác nhau đối với ba tình huống có thể xảy ra
Kết hợp bình đẳng với một điều kiện tham gia duy nhấtTrong Khớp đẳng thức để thực hiện các thao tác hợp nhất giữa một trường từ cơ sở dữ liệu đầu vào và cơ sở dữ liệu đã tham gia, cú pháp sẽ như sau
Tài liệu MongoDB giải thích các ràng buộc được sử dụng như sau. (Ngôn ngữ đã được chỉnh sửa cho thống nhất, bấm vào đây để xem phiên bản gốc) Mô tả trườngChỉ đị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. Bộ sưu tập 1 không thể được phân đoạn. Để biết chi tiết, xem. Chỉ định trường từ đầu vào tài liệu đến giai đoạn. thực hiện đối chiếu bằng nhau trên 4 với 5 từ các tài liệu của bộ sưu tập 1. Nếu tài liệu đầu vào không chứa 4, thì coi trường đó có giá trị là 9 để so khớp. Chỉ định trường từ các tài liệu trong bộ sưu tập 1. thực hiện đối sánh bằng nhau trên 5 với 4 từ các tài liệu đầu vào. Nếu một tài liệu trong bộ sưu tập 1 không chứa 5, thì xử lý giá trị đó là 9 để phục vụ mục đích khớp. Chỉ định tên của trường mảng mới để thêm vào tài liệu đầu vào. Trường mảng mới chứa các tài liệu phù hợp từ bộ sưu tập 1. Nếu tên được chỉ định đã tồn tại trong tài liệu đầu vào, thì trường hiện có sẽ bị ghi đèCâu lệnh giả SQL cho thao tác nêu trên sẽ như thế này
Tham gia Điều kiện và Truy vấn con trên Bộ sưu tập đã tham giaNói chung, các truy vấn con của MongoDB liên quan đến tương quan có thể liên quan đến truy vấn của SQL. Do đó, trong truy vấn con tương quan, truy vấn bên trong tham chiếu đến các giá trị truy vấn bên ngoài. Đồng thời, truy vấn con không tương quan làm ngược lại. Trong trường hợp này, để thực hiện các truy vấn con tương quan và không tương quan, cú pháp sẽ như sau
Tài liệu MongoDB giải thích các ràng buộc được sử dụng như sau. (Ngôn ngữ đã được chỉnh sửa cho thống nhất, bấm vào đây để xem phiên bản gốc) Mô tả trườngChỉ định bộ sưu tập trong cùng một cơ sở dữ liệu để thực hiện thao tác nối. Không thể chia nhỏ bộ sưu tập đã tham gia (xem ). Không bắt buộc. Chỉ định các biến sẽ sử dụng trong các giai đoạn. Sử dụng các biểu thức biến để truy cập các trường từ các tài liệu của bộ sưu tập đã tham gia được nhập vào 9. Chỉ định 9 để chạy trên bộ sưu tập đã tham gia. _ 9 xác định các tài liệu kết quả từ bộ sưu tập đã tham gia. Để trả lại tất cả tài liệu, hãy chỉ định một ô trống 9 3. _ 9 không được bao gồm giai đoạn hoặc giai đoạn. ____16_______9 không thể truy cập trực tiếp vào các trường tài liệu đã tham gia. Thay vào đó, hãy xác định các biến cho các trường tài liệu đã nối bằng cách sử dụng tùy chọn rồi tham chiếu các biến trong các giai đoạn 9. Chỉ định tên của trường mảng mới để thêm vào các tài liệu đã tham gia. Trường mảng mới chứa các tài liệu phù hợp từ bộ sưu tập đã tham gia. Nếu tên được chỉ định đã tồn tại trong tài liệu đã tham gia, trường hiện có sẽ bị ghi đèCâu lệnh giả SQL cho thao tác nêu trên sẽ như thế này
Các truy vấn con tương quan sử dụng cú pháp ngắn gọnTính năng này ra đời trong MongoDB phiên bản 5. 0. Tính năng này sử dụng biểu mẫu cú pháp ngắn gọn cho truy vấn con tương quan. Định dạng mới loại bỏ các ràng buộc để chạy khớp đẳng thức trước trên hai cơ sở dữ liệu bên trong toán tử $exp Trong trường hợp này, để thực hiện các truy vấn con tương quan ở định dạng ngắn gọn, cú pháp sẽ như sau
Tài liệu MongoDB giải thích các ràng buộc được sử dụng như sau. (Ngôn ngữ đã được chỉnh sửa cho thống nhất, bấm vào đây để xem phiên bản gốc) Mô tả trườngChỉ định bộ sưu tập nước ngoài trong cùng một cơ sở dữ liệu để tham gia vào bộ sưu tập địa phương. Không thể chia nhỏ bộ sưu tập nước ngoài (xem ). Chỉ định các tài liệu trong nước’ 4 để thực hiện so khớp bình đẳng với các tài liệu nước ngoài’ 5. Nếu một tài liệu cục bộ không chứa giá trị 4, thì sử dụng giá trị 9 cho đối sánh. Chỉ định các tài liệu nước ngoài’ ______1_______5 để thực hiện so khớp bình đẳng với các tài liệu trong nước’ 4. Nếu một tài liệu nước ngoài không chứa giá trị 5, thì sử dụng giá trị 9 cho khớp. Không bắt buộc. Chỉ định các biến sẽ sử dụng trong các giai đoạn. Sử dụng các biểu thức biến để truy cập vào các trường tài liệu được nhập vào 9. Chỉ định 9 để chạy trên bộ sưu tập nước ngoài. _______16_______9 trả lại tài liệu từ bộ sưu tập nước ngoài. Để trả lại tất cả tài liệu, hãy chỉ định một ô trống 9 3. _ 9 không thể bao gồm hoặc các giai đoạn. Chỉ định tên của trường mảng mới để thêm vào tài liệu nước ngoài. Trường mảng mới chứa các tài liệu phù hợp từ bộ sưu tập nước ngoài. Nếu tên được chỉ định đã tồn tại trong tài liệu nước ngoài, trường hiện có sẽ bị ghi đèCâu lệnh giả SQL cho thao tác nêu trên sẽ như thế này
Cân nhắc cho các hoạt động tra cứu MongoDBLượt xem và đối chiếuCác chế độ xem phải có một bộ sưu tập tương tự khi thực hiện các tác vụ tổng hợp với nhiều chế độ xem Những hạn chếTrong khi chỉ định một đường dẫn cho bộ sưu tập đã tham gia, bạn không được đưa $out hoặc $merge vào $lookup. (đã thay đổi trong phiên bản 2. 3)
Bộ sưu tập được chia sẻTrong phiên bản 5 của MongoDB. 1, giờ đây có thể chỉ định các bộ sưu tập được chia sẻ trong tham số 'từ' của các giai đoạn tra cứu $
Vài ví dụ để hiểu rõ hơn về toán tử tra cứu MongoDBTrong phần này, chúng ta sẽ xem xét một số ví dụ để tìm hiểu về Toán tử trình xem MongoDB trong một số tình huống nhất định. Hãy bắt đầu nào Thực hiện Tham gia bình đẳng đơn với tra cứu MongoDBĐầu tiên, tạo một bộ sưu tập có tên là 'Đơn hàng' với các bộ dữ liệu sau. Bạn có thể sao chép và dán mã được cung cấp bên dưới vào hệ thống của mình
Thứ hai, tạo một bộ sưu tập khác có tên là "khoảng không quảng cáo" với các bộ dữ liệu sau
Mã được cung cấp bên dưới bây giờ sẽ hợp nhất thông tin trên tài liệu 'Đặt hàng' từ tài liệu 'hàng tồn kho' bằng cách sử dụng trường 'mặt hàng', trường này sẽ thu thập thông tin từ tài liệu 'đơn đặt hàng' và trường 'SKU' từ tài liệu 'hàng tồn kho'. Mã trông như thế này 0Đầu ra trông như thế này 1Dưới đây đưa ra là câu lệnh giả SQL mà hoạt động tương ứng 2Sử dụng Tra cứu MongoDB với một mảngCó thể khớp các phần tử ở định dạng mảng trong định dạng vô hướng mà không cần giai đoạn $unwind. Làm theo ví dụ dưới đây. Chúng tôi sẽ tạo một bộ sưu tập mẫu 'các lớp' với các bộ dữ liệu được cung cấp bên dưới 3Bây giờ hãy tạo một tài liệu 'thành viên' khác với các bộ dữ liệu được cung cấp bên dưới 4Mã tổng hợp được cung cấp bên dưới sẽ hợp nhất tài liệu 'lớp' với tài liệu 'thành viên. ' Điều này sẽ khớp trường 'thành viên' với trường 'tên' 5Các hoạt động sẽ trở lại như sau 6Sử dụng Tra cứu MongoDB với $mergerObjectsNói chung, toán tử $mergerObecjts hợp nhất nhiều tài liệu thành một. Chúng tôi sẽ tiến hành bằng cách tạo tài liệu 'đơn đặt hàng' trước, như được đưa ra bên dưới 7Bây giờ, hãy tạo một tài liệu có tên là 'items. ’ 8Trước tiên, người vận hành sẽ sử dụng toán tử Tra cứu MongoDB để hợp nhất hai tài liệu, sau đó sử dụng toán tử $mergeObjects trong $replaceRoot để hợp nhất thông tin 9Toán tử trả về như sau 0Phần kết luậnTrong bài viết hướng dẫn này, chúng ta đã tìm hiểu về khái niệm Aggregation trong MongoDB, cũng như khái niệm về MongoDB Looker Operator. Chúng tôi cũng đã thảo luận về các cú pháp khác nhau được sử dụng cho các tình huống và ví dụ khác nhau để hiểu rõ hơn về chủ đề này Tuy nhiên, MongoDB là một Dịch vụ Cơ sở dữ liệu Tài liệu gốc trên đám mây và nó yêu cầu sự nhạy bén về kỹ thuật để hiểu một số khái niệm nặng về mã; Ghé thăm trang web của chúng tôi để khám phá HevoHevo Data, Đường ống dữ liệu không mã cung cấp cho bạn giải pháp nhất quán và đáng tin cậy để quản lý truyền dữ liệu giữa nhiều nguồn khác nhau như MongoDB và nhiều Điểm đến mong muốn khác nhau, với một vài cú nhấp chuột Hevo Data với khả năng tích hợp mạnh mẽ với hơn 100 nguồn (bao gồm hơn 40 nguồn miễn phí) cho phép bạn không chỉ xuất dữ liệu từ các nguồn dữ liệu mong muốn và tải dữ liệu đó đến đích bạn chọn mà còn chuyển đổi và làm phong phú dữ liệu của bạn để phân tích. Bạn muốn thử Hevo? . Bạn cũng có thể xem giá cạnh tranh nhất sẽ giúp bạn chọn gói phù hợp cho nhu cầu kinh doanh của mình Làm cách nào để áp dụng tra cứu trong MongoDB?Có bốn trường bắt buộc. . từ. Bộ sưu tập sử dụng để tra cứu trong cùng một cơ sở dữ liệu trường địa phương. Trường trong bộ sưu tập chính có thể được sử dụng làm mã định danh duy nhất trong bộ sưu tập từ vùng ngoại quốc. Trường trong bộ sưu tập từ có thể được sử dụng làm mã định danh duy nhất trong bộ sưu tập chính Tra cứu hoạt động như thế nào trong MongoDB?Toán tử $lookup là toán tử tổng hợp hoặc giai đoạn tổng hợp, được dùng để nối tài liệu từ một tập hợp này với tài liệu của một tập hợp khác của cùng một cơ sở dữ liệu dựa trên một số . Cả hai bộ sưu tập phải thuộc cùng một cơ sở dữ liệu. . Both the collections should belong to the same databases.
Làm cách nào để sử dụng tra cứu và so khớp trong MongoDB?$lookup thực hiện so khớp bình đẳng trên ForeignField với localField từ các tài liệu đầu vào . Nếu một tài liệu trong bộ sưu tập from không chứa ForeignField , thì $lookup coi giá trị là null cho các mục đích phù hợp. Chỉ định tên của trường mảng mới để thêm vào tài liệu đầu vào.
Tra cứu trong tập hợp cho MongoDB là gì?$lookup thực hiện so 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 from . Nếu một tài liệu đầu vào không chứa localField , thì $lookup coi trường đó có giá trị null cho các mục đích phù hợp. |