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

Tôi nên đặt dòng thời gian hoạt động ở đâu trong mongodb, được nhúng trong người dùng hoặc riêng biệt?

Cả hai bài báo đó đều đúng và cả hai bài đều sai.

Nhúng hay không nhúng? Đây luôn là câu hỏi quan trọng và nó phụ thuộc vào nhu cầu của bạn, truy vấn và lưu trữ và thậm chí cả bộ làm việc của bạn.

Vào cuối ngày, chúng tôi chỉ có thể đưa ra những gợi ý mà bạn không thể thực sự cho bạn biết cái nào là tốt nhất.

Tuy nhiên, xem xét kích thước của nguồn cấp dữ liệu hoạt động, cá nhân tôi sẽ không nhúng nó vì nó có thể dễ dàng vượt quá 16meg (mỗi người dùng). Tuy nhiên, đối với tốc độ và sức mạnh của truy vấn, bạn có thể tổng hợp 20 hoạt động cuối cùng của người dùng và sau đó nhúng vào hàng người dùng (vì 20 cuối cùng thường là hàng được truy vấn nhiều nhất).

Nhưng sau đó việc nhúng tổng hợp phụ thuộc, sharding có thể đảm nhận việc truy vấn các bộ sưu tập theo tỷ lệ chiều ngang khổng lồ và sử dụng các truy vấn phù hợp có nghĩa là bạn không thu được bất kỳ lợi ích thực sự nào từ việc nhúng và có thể khiến cuộc sống của bạn khó khăn hơn do phải duy trì các chỉ mục, bộ nhớ và các truy vấn cần thiết để duy trì tài liệu con đó.

Còn về việc nhúng tay vào cho đến chết. Rất nhiều truy vấn MongoDB tại thời điểm này chủ yếu dựa vào nhúng một hoặc hai cấp, đó là lý do tại sao có thể khó duy trì 12 bảng lồng nhau, lúc đó bạn bắt đầu thấy các câu hỏi trên đây và nhóm Google về cách duy trì một tài liệu khổng lồ (câu trả lời là phía khách hàng nếu bạn thực sự muốn).

Xem xét điều này, tôi sẽ chứa một tổng hợp về người dùng, có nghĩa là người dùng có thể thấy cá biệt hoạt động của họ hoặc của người dùng khác với một chuyến đi khứ hồi.

Tuy nhiên, xét rằng một giáo viên rất có thể sẽ phải có các trang kết quả từ tất cả người dùng, tôi sẽ lưu trữ một bộ sưu tập các hoạt động riêng biệt và truy vấn trên đó cho họ. Việc phân trang một tổng hợp các tài liệu con yêu cầu một vài truy vấn và trong trường hợp này, tốt hơn là bạn chỉ nên thực hiện theo cách này.

Hy vọng rằng điều đó sẽ giúp bạn bắt đầu.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách lấy giá trị từ tài liệu MongoDB

  2. Các trường bổ sung để đăng ký tài khoản passport-local-mongoose?

  3. MongoDB, Số lượng nhiều (có $ tồn tại)

  4. Kết thúc bất ngờ của đầu vào JSON với MongoDB Compass

  5. Chuyển đổi chuỗi thành MongoDB BsonDocument