Tham gia hai bộ sưu tập trong mongodb bằng dữ liệu mùa xuân
Hôm nay, chúng ta sẽ sử dụng giai đoạn tổng hợp 7, toán tử 8 và 9, giai đoạn bộ lọc 0 và MongoDB Compass để kết hợp hai bộ sưu tập thành một bộ sưu tập Show
Chúng tôi có các cách tiếp cận khác nhau để kết hợp hai bộ sưu tập thành một bộ sưu tập bằng MongoDB. Một số trong số chúng được đưa ra dưới đây, mà chúng tôi sẽ trình bày trong hướng dẫn này
Đối với tất cả các tình huống trên, chúng ta phải có một cơ sở dữ liệu chứa hai bộ sưu tập (giống như các bảng trong MySQL) được điền bằng các tài liệu (giống như các bản ghi trong MySQL). Chúng tôi đã thực hiện điều đó bằng cách sử dụng các truy vấn sau; Tạo hai bộ sưu tập có tên là 5 và 6 nằm trong cơ sở dữ liệu 7. Hơn nữa, điền vào chúng các tài liệu như sauTạo cơ sở dữ liệu và bộ sưu tập 1Điền vào bộ sưu tập 8 với hai tài liệu
Đưa vào bộ sưu tập 6 hai tài liệu
Chúng tôi sử dụng chức năng 60 để chèn nhiều tài liệu. Bây giờ, chúng ta có thể sử dụng các lệnh bên dưới để xem dữ liệu cho cả hai bộ sưu tậpTrong đoạn mã sau, phương thức 61 hiển thị đầu ra rõ ràng và được định dạng, dễ hiểu trên trình baoHiển thị tài liệu từ 8 6ĐẦU RA 0Hiển thị tài liệu từ 6 2ĐẦU RA 3Cả hai bộ sưu tập phải nằm trong cùng một cơ sở dữ liệu để sử dụng giai đoạn tổng hợp 7. Khi cả hai bộ sưu tập đã sẵn sàng, chúng tôi có thể sử dụng các truy vấn khác nhau để kết hợp dữ liệu của cả hai bộ sưu tập tùy thuộc vào tình huống chúng tôi cóSử dụng Giai đoạn tổng hợp > db.userInformation.insertMany( [ { fullname: 'Mehvish Ashiq', age: 30, gender: 'Female', nationality: 'Pakistani' }, { fullname: 'James Daniel', age: 45, sex: 'male', nationality: 'Canadian' } ] ) 7 để kết hợp hai bộ sưu tập thành mộtMã ví dụ 6ĐẦU RA 7Trong cơ sở dữ liệu MongoDB, giai đoạn tổng hợp 7 thực hiện liên kết ngoài bên trái với tập hợp khác và cũng lọc thông tin (dữ liệu) từ các tài liệu đã tham gia. Chẳng hạn, chúng tôi sử dụng truy vấn để lấy thông tin của tất cả người dùng cùng với địa chỉ của họHàm 7 chấp nhận bốn trường. Đầu tiên là trường 68, nơi chúng tôi chỉ định bộ sưu tập được cho là được kết hợp với bộ sưu tập khácThứ hai là trường 69. Nó là một trong những thuộc tính (trường) từ các tài liệu đầu vào của bộ sưu tập được chỉ định trong trường 68Nó được sử dụng để thực hiện đối sánh trên 69 với 02 từ các tài liệu của bộ sưu tậpTương tự, trường thứ ba có tên là 02 cũng thực hiện đối sánh bằng trên 02 với 69 từ các tài liệu của bộ sưu tậpChúng tôi viết tên của mảng mới cho trường thứ tư, 06. Xem phần giải thích sau cho giai đoạn tổng hợp 7Sử dụng toán tử > db.userInformation.insertMany( [ { fullname: 'Mehvish Ashiq', age: 30, gender: 'Female', nationality: 'Pakistani' }, { fullname: 'James Daniel', age: 45, sex: 'male', nationality: 'Canadian' } ] ) 8 để nối hai tập hợp thành một dựa trên điều kiện đã chỉ địnhMã ví dụ 1ĐẦU RA 0Chúng ta có thể sử dụng toán tử 8 với 7 khi muốn nối hai tập hợp dựa trên một điều kiện cụ thể (giống như chúng ta sử dụng mệnh đề 21 trong MySQL)Chẳng hạn, chúng tôi đang tham gia các bộ sưu tập trong đó 22 từ 6 bằng với 22 trong 8Sử dụng toán tử > db.userInformation.insertMany( [ { fullname: 'Mehvish Ashiq', age: 30, gender: 'Female', nationality: 'Pakistani' }, { fullname: 'James Daniel', age: 45, sex: 'male', nationality: 'Canadian' } ] ) 9 cho mảng phẳng trước khi đính kèm vào tài liệu kết quảMã ví dụ 1ĐẦU RA 2Toán tử 9 không làm gì ngoài việc làm phẳng mảng trước khi gắn nó vào tài liệu kết quả. Sự khác biệt cơ bản đối với toán tử 9 là nó chuyển đổi một mảng có một phần tử thành đối tượng được làm phẳng, chính phần tử đóHãy nhớ rằng, tên cho phần tử này sẽ không được thay đổi. Nó sẽ giống như trước đây khi phần tử ở dạng mảng Thực hiện truy vấn trên có và không có toán tử 9 và quan sát trường 30Sử dụng Giai đoạn bộ lọc > db.userAddress.insertMany( [ { fullname: 'Mehvish Ashiq', block_number: 22, street: 'Johar Town Street', city: 'Lahore' }, { fullname: 'James Daniel', block_number: 30, street: 'Saint-Denis Street', city: 'Montreal' } ] ) 0 trong Truy vấn tổng hợp để kết hợp hai bộ sưu tập thành mộtTrước khi tham gia các bộ sưu tập bằng cách sử dụng 0, hãy hiểu tầm quan trọng của nó. Ví dụ: nếu chúng tôi không muốn tham gia toàn bộ bộ sưu tập có tên 6 với 8, chúng tôi chỉ muốn các trường 35 và 36 được tham giaTrong trường hợp đó, chúng ta cần sử dụng giai đoạn 37. Chúng tôi sử dụng giai đoạn này để nối/gán bất kỳ trường nào hoặc nhiều trường từ một mảng/đối tượng đến cấp độ gốc của tài liệuVì vậy, chúng tôi thực hiện truy vấn sau để truy xuất 35 và 36 từ bộ sưu tập 6Mã ví dụ 3ĐẦU RA 4Cẩn thận tập trung vào đầu ra được đưa ra ở trên. Chúng ta có nhận được 36 và 35 không? Đây là nơi giai đoạn bộ lọc 0 xuất hiện trong bức tranh. Nó chỉ định những trường nào chúng ta nên có trong tài liệu kết quảXem truy vấn sau để hiểu rõ hơn Mã ví dụ 5ĐẦU RA 6Như bạn có thể thấy, hiện tại chúng ta không có đối tượng 30, nhưng hai trường của nó ( 36 và 35) được gán cho cấp độ gốc của tài liệuTham gia hai bộ sưu tập bằng la bàn (Giao diện đồ họa của MongoDB)Tổng hợp bằng giao diện đồ họa thật dễ dàng. Chúng ta chỉ cần làm theo các bước sau cho giai đoạn tổng hợp 7
|