Điều đó tùy thuộc.
Tùy thuộc vào số lượng của từng loại đối tượng bạn mong muốn có. Bạn có thể đặt tất cả chúng vào một tài liệu MongoDB duy nhất cho một Chủ đề cụ thể không? Chắc là không.
Tùy thuộc vào mối quan hệ - bạn có mối quan hệ một hoặc nhiều hay nhiều hay không? Nếu đó là một-nhiều và số lượng các thực thể liên quan là nhỏ, bạn có thể chọn để nhúng chúng vào một IList trên một tài liệu. Nếu đó là nhiều - nhiều, bạn có thể chọn sử dụng một mối quan hệ truyền thống hơn hoặc bạn có thể chọn nhúng cả hai bên là những người theo chủ nghĩa ILists.
Bạn vẫn có thể lập mô hình các mối quan hệ trong MongoDB với các bộ sưu tập riêng biệt NHƯNG không có tham gia trong cơ sở dữ liệu, do đó bạn phải làm điều đó trong mã. Tải một chủ đề và sau đó tải các ý kiến cho nó có thể là tốt từ một quan điểm hiệu suất.
lời khuyên khác:
Với MongoDB bạn có thể chỉ mục VÀO mảng trên các tài liệu. Vì vậy, đừng nghĩ về một chỉ mục như là một chỉ mục trên một trường đơn giản trên một tài liệu (như SQL). Bạn có thể sử dụng, ví dụ: Bộ sưu tập thẻ trên Chủ đề và chỉ mục vào thẻ. (Xem http://www.mongodb.org/display/DOCS/Indexes#Indexes-Arrays)
Khi bạn truy xuất hoặc ghi dữ liệu, bạn có thể đọc một phần và viết một phần của bất kỳ tài liệu nào. (xem http://www.mongodb.org/display/DOCS/Retrieving+a+Subset+of+Fields)
Và cuối cùng, khi bạn không thể biết cách lấy những gì bạn muốn bằng bộ sưu tập và chỉ mục, bạn có thể đạt được nó bằng cách sử dụng bản đồ giảm. Ví dụ: để tìm tất cả các thẻ hiện đang được sử dụng được sắp xếp theo tần suất sử dụng, bạn sẽ ánh xạ từng Chủ đề phát ra các thẻ được sử dụng trong đó và sau đó bạn sẽ giảm tập hợp đó để có kết quả mong muốn. Sau đó bạn có thể lưu trữ kết quả của bản đồ đó làm giảm vĩnh viễn và chỉ cập nhật nó khi bạn cần.
Đó là một sự thay đổi ý nghĩa khá đáng kể từ suy nghĩ quan hệ nhưng nó đáng giá nếu bạn cần khả năng mở rộng và tính linh hoạt mà cách tiếp cận NOSQL mang lại.
Nguồn
2011-01-05 05:18:15
bản sao có thể có của [mối quan hệ MongoDB cho các đối tượng] (http://stackoverflow.com/questions/4253496/mongodb-relationships-for-objects) –