MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Mối quan hệ MongoDB cho các đối tượng

Nó phụ thuộc.

Nó phụ thuộc vào số lượng từng loại đối tượng mà bạn mong đợi có. Bạn có thể sắp xếp tất cả chúng vào một tài liệu MongoDB duy nhất cho một Người dùng nhất định không? Có lẽ là không.

Nó phụ thuộc vào các mối quan hệ - người dùng-Tài khoản là mối quan hệ một-nhiều hay nhiều-nhiều? Nếu đó là một đến nhiều và số lượng Tài khoản ít, bạn có thể chọn đưa chúng vào IList trên tài liệu Người dùng.

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ó liên kết nào trong cơ sở dữ liệu nên bạn phải làm điều đó trong mã. Việc tải Người dùng và sau đó tải Tài khoản của họ có thể tốt từ góc độ hiệu suất.

Bạn có thể lập chỉ mục INTO mảng trên tài liệu. Đừng nghĩ về một Chỉ mục chỉ 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, chẳng hạn như bộ sưu tập Thẻ trên tài liệu và lập chỉ mục vào các thẻ. (Xem http://www.mongodb.org/display/DOCS/Indexes # Chỉ mục-Mảng )

Khi bạn truy xuất hoặc ghi dữ liệu, bạn có thể đọc một phần và ghi một phần bất kỳ tài liệu nào. (xem http://www.mongodb.org/display / DOCS / Truy xuất + a + Tập hợp con + của + Trường )

Và, cuối cùng, khi bạn không thể biết cách đạt được những gì bạn muốn bằng cách sử dụng các bộ sưu tập và chỉ mục, bạn có thể đạt được điều đó bằng cách sử dụng thu nhỏ bản đồ. 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 của chúng, bạn sẽ ánh xạ mỗi tài liệu tạo ra các thẻ được sử dụng trong đó, và sau đó bạn sẽ giảm bớt thiết lập để có được kết quả bạn muốn. Sau đó, bạn có thể lưu trữ vĩnh viễn kết quả của việc giảm bản đồ đó và chỉ cập nhật nó khi bạn cần.

Một mối quan tâm khác:Bạn đề cập đến việc tính tổng theo thẻ. Nếu bạn muốn tính nhất quán trong giao dịch chất lượng kế toán, MongoDB có thể không phải là lựa chọn phù hợp cho bạn. "Cuối cùng-nhất quán" là tên của trò chơi dành cho các kho dữ liệu NoSQL và chúng thường không phù hợp cho các giao dịch tài chính. Ví dụ:không có vấn đề gì nếu một người dùng xem một bài đăng blog có 3 nhận xét trong khi người khác thấy 4 vì họ nhấn các bản sao khác nhau chưa được đồng bộ hóa, nhưng đối với một báo cáo tài chính, loại nhất quán đó rất quan trọng - của bạn báo cáo có thể không thêm!




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb chèn tài liệu không có trường _id

  2. Làm thế nào để có được tất cả các vòng tròn mà một Điểm được chứa trong đó?

  3. Một cách thanh lịch hơn để xử lý các giá trị lọc trong ứng dụng Angular

  4. Mã định dạng MongoDB $ dateToString

  5. Cập nhật tập hợp con của các trường với Mongoose