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

lưu trữ upvotes / downvotes trong mongodb

Tài liệu MongoDB hiện bị giới hạn ở mức tối đa 16MB, vì vậy giả sử các tính toán của Gilbert là chính xác, bạn sẽ không thể lưu trữ tất cả 6 Triệu user_id s trong Post tài liệu.

Tuy nhiên, bạn có thể cân nhắc việc lưu trữ các phiếu bầu trong User tài liệu thay thế (tức là post_id mà người dùng cụ thể đã bình chọn). Ít có khả năng người dùng bình chọn trên 6 triệu bài đăng khác nhau, vì vậy, bằng cách này, bạn sẽ không nhanh chóng đạt đến giới hạn kích thước.

Một cách khác để xử lý điều này:Nếu bạn mong đợi có nhiều phiếu bầu cho một bài đăng cụ thể, bạn có thể muốn lưu trữ phiếu bầu bên ngoài Post tài liệu trong một bộ sưu tập riêng biệt và thực hiện một truy vấn bổ sung, tương tự như một bảng nhiều-nhiều JOIN trong kiểu SQL:

user_votes { user_id: ObjectId(...), post_id: ObjectId(...), vote:-1 }

và tạo chỉ mục kết hợp trên (user_id, post_id).



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách tạo chỉ mục văn bản trong MongoDB

  2. Bộ lọc Linq đến MongoDB

  3. MongoDB không tuân thủ ACID trước phiên bản v4 thực sự có nghĩa là gì?

  4. Truy vấn trong tài liệu lồng nhau trong mongodb

  5. Làm cách nào để gọi các thuộc tính nằm trong một tập hợp khác trong Mảng con?