Mongodb cách liên kết các bộ sưu tập
Chúng tôi đang lướt qua các mẫu chống mẫu thiết kế lược đồ MongoDB. Cho đến giờ trong loạt bài này, chúng ta đã thảo luận về bốn trong số sáu phản mẫu Show Bình thường hóa dữ liệu và chia nhỏ dữ liệu thành các phần khác nhau để tối ưu hóa không gian và giảm trùng lặp dữ liệu có thể giống như bản chất thứ hai đối với những người có nền tảng cơ sở dữ liệu quan hệ. Tuy nhiên, việc tách dữ liệu thường được truy cập cùng nhau thực sự là một phản mẫu trong MongoDB. Trong bài đăng này, chúng ta sẽ tìm hiểu lý do tại sao và thảo luận về những việc bạn nên làm để thay thế Nếu bạn thích học qua video (hoặc bạn chỉ thích nghe tôi lặp lại, "Dữ liệu được truy cập cùng nhau nên được lưu trữ cùng nhau"), hãy xem video ở trên Tách dữ liệu được truy cập cùng nhauGiống như bạn sẽ sử dụng một Các hoạt động Quy tắc ngón tay cái khi lập mô hình dữ liệu của bạn trong MongoDB là Dữ liệu được truy cập cùng nhau nên được lưu trữ cùng nhau Thay vì phân tách dữ liệu thường được sử dụng cùng nhau giữa nhiều bộ sưu tập, hãy tận dụng tính năng nhúng và mảng để giữ dữ liệu cùng nhau trong một bộ sưu tập duy nhất Ví dụ: khi lập mô hình một tệp , bạn có thể nhúng tài liệu từ một bộ sưu tập dưới dạng tài liệu phụ vào tài liệu từ một bộ sưu tập khác. Khi lập mô hình một , bạn có thể nhúng thông tin từ nhiều tài liệu trong một bộ sưu tập dưới dạng một mảng tài liệu trong một bộ sưu tập khác Nếu việc kết hợp dữ liệu từ các bộ sưu tập riêng biệt thành một bộ sưu tập duy nhất sẽ dẫn đến các mảng lớn, không có giới hạn hoặc tài liệu cồng kềnh, bạn có thể muốn giữ các bộ sưu tập riêng biệt và sao chép một số dữ liệu được sử dụng thường xuyên cùng nhau trong cả hai bộ sưu tập. Bạn có thể sử dụng Mẫu tập hợp con để sao chép một tập hợp con các tài liệu từ một bộ sưu tập này sang một bộ sưu tập khác. Bạn cũng có thể sử dụng Mẫu tham chiếu mở rộng để sao chép một phần dữ liệu trong mỗi tài liệu từ bộ sưu tập này sang bộ sưu tập khác. Trong cả hai mẫu, bạn có tùy chọn tạo tham chiếu giữa các tài liệu trong cả hai bộ sưu tập. Hãy nhớ rằng bất cứ khi nào bạn cần kết hợp thông tin từ cả hai bộ sưu tập, bạn có thể sẽ cần sử dụng Như chúng tôi đã nói trong suốt loạt bài này, mỗi trường hợp sử dụng là khác nhau. Khi bạn lập mô hình lược đồ của mình, hãy xem xét cẩn thận cách bạn sẽ truy vấn dữ liệu và dữ liệu bạn sẽ lưu trữ sẽ trông như thế nào trên thực tế Một bài đăng Anti-Pattern sẽ ra sao nếu không có ví dụ từ Công viên và Giải trí? . Vì vậy, hãy trở lại với Leslie Leslie quyết định tổ chức một Liên Hợp Quốc kiểu mẫu cho học sinh trung học địa phương và tuyển một số đồng nghiệp của cô ấy cũng tham gia. Mỗi người tham gia sẽ đóng vai trò là đại biểu cho một quốc gia trong sự kiện. Cô chỉ định Andy và Donna làm đại biểu cho Phần Lan Leslie quyết định lưu trữ thông tin liên quan đến Model United Nations trong cơ sở dữ liệu MongoDB. Cô ấy muốn lưu trữ thông tin sau trong cơ sở dữ liệu của mình
Với thông tin này, cô ấy muốn có thể nhanh chóng tạo các báo cáo sau
Sự kiện Model United Nations bắt đầu và Andy rất hào hứng tham gia. Anh ta quyết định không muốn bất kỳ nguồn tài nguyên "nhàm chán" nào của đất nước mình, vì vậy anh ta bắt đầu giao dịch với các quốc gia khác để có được tất cả những con sư tử trên thế giới Leslie quyết định tạo các bộ sưu tập cho từng loại thông tin mà cô ấy cần lưu trữ trong cơ sở dữ liệu của mình. Sau khi Andy giao dịch xong, Leslie có tài liệu như sau Khi Leslie muốn tạo một báo cáo về Phần Lan, cô ấy phải sử dụng Leslie bắt đầu làm việc để cải thiện sơ đồ của cô ấy dần dần. Khi cô ấy nhìn vào lược đồ của mình, cô ấy nhận ra rằng cô ấy có mối quan hệ một đối một giữa các tài liệu trong bộ sưu tập Bây giờ tài liệu cho Phần Lan trông giống như sau Như bạn có thể thấy ở trên, cô ấy đã giữ thông tin về các tài nguyên cùng nhau dưới dạng tài liệu phụ trong tài liệu của mình cho Phần Lan. Đây là một cách dễ dàng để sắp xếp dữ liệu Cô ấy không cần bộ sưu tập Tại thời điểm này, cô ấy có thể truy xuất thông tin về một quốc gia và tài nguyên của quốc gia đó mà không cần phải sử dụng Leslie tiếp tục phân tích lược đồ của mình. Cô ấy nhận ra rằng cô ấy có mối quan hệ một-nhiều giữa các quốc gia và đại biểu, vì vậy cô ấy quyết định tạo một mảng có tên Leslie cảm thấy tự tin về việc lưu trữ thông tin đại biểu trong tài liệu quốc gia của mình vì mỗi quốc gia sẽ chỉ có một số ít đại biểu (có nghĩa là mảng của cô ấy sẽ không phát triển vô hạn) và cô ấy sẽ không thường xuyên truy cập thông tin về các đại biểu riêng biệt từ các quốc gia liên kết của họ Leslie không còn cần bộ sưu tập Leslie tiếp tục tối ưu hóa lược đồ của mình và bắt đầu xem bộ sưu tập Leslie quyết định tận dụng Mẫu tập hợp con. Cô ấy lưu tên và ngày của năm tài liệu chính sách gần đây nhất trong tài liệu quốc gia của mình. Cô ấy cũng tạo một tham chiếu đến tài liệu chính sách, vì vậy cô ấy có thể dễ dàng thu thập tất cả thông tin cho từng chính sách khi cần. Cô ấy để nguyên bộ sưu tập Tài liệu của cô ấy cho Phần Lan bây giờ giống như sau Leslie tiếp tục kiểm tra truy vấn của cô ấy cho báo cáo của cô ấy về từng quốc gia. Sau tất cả các cập nhật của cô ấy, tài liệu của cô ấy cho Phần Lan bây giờ giống như sau Dữ liệu được truy cập cùng nhau nên được lưu trữ cùng nhau. Nếu bạn sẽ thường xuyên đọc hoặc cập nhật thông tin cùng nhau, hãy cân nhắc việc lưu trữ thông tin cùng nhau bằng cách sử dụng các tài liệu hoặc mảng lồng nhau. Xem xét cẩn thận trường hợp sử dụng của bạn và cân nhắc những lợi ích và hạn chế của việc sao chép dữ liệu khi bạn tập hợp dữ liệu lại với nhau Hãy chú ý đến một bài đăng về mẫu chống mẫu thiết kế lược đồ MongoDB cuối cùng Khi bạn đã sẵn sàng xây dựng lược đồ trong MongoDB, hãy xem MongoDB Atlas, cơ sở dữ liệu dưới dạng dịch vụ được quản lý hoàn toàn của MongoDB. Atlas là cách dễ nhất để bắt đầu với MongoDB và có một cấp độ hào phóng, miễn phí mãi mãi Chúng tôi có thể liên kết hai bộ sưu tập trong MongoDB không?Có, bạn có thể tham gia 2 bộ sưu tập với Khung tổng hợp và giai đoạn $unionWith . Dưới đây là các tài liệu với cú pháp và ví dụ, vì vậy bạn có thể kiểm tra cách thực hiện.
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 .
Làm cách nào để kết nối bảng này với bảng khác trong MongoDB?1 – Kết nối với cơ sở dữ liệu SQL. . 2 – Xác định kết nối MongoDB đích. . 3 – Thêm bảng SQL. . 4 – Ánh xạ SQL sang MongoDB. . 5 – Xác định mối quan hệ một đối một. . 6 – Dọn dẹp bộ sưu tập MongoDB. . 7 – Chạy di chuyển SQL sang MongoDB. . 8 – Kiểm tra kỹ bộ sưu tập MongoDB Làm cách nào để lấy dữ liệu từ hai bộ sưu tập trong cầy mangut?Để lấy dữ liệu từ một bộ sưu tập với Mongoose trong NodeJS, bạn phải có hai thứ cần thiết. . Lược đồ. Nó là một cấu trúc tài liệu chứa thuộc tính với các loại của nó (giá trị mặc định, xác thực, v.v. . Mô hình. Nó là một lớp được tạo với sự trợ giúp của Schema đã xác định và tài liệu MongoDB là một thể hiện của Model |