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

Lập mô hình các blog và xếp hạng trong mongodb và nodejs

Một phương pháp hay với MongoDB (và các kho dữ liệu không quan hệ khác) là lập mô hình dữ liệu của bạn để có thể dễ dàng sử dụng / truy vấn trong ứng dụng của bạn. Trong trường hợp của bạn, bạn có thể cân nhắc việc chuẩn hóa cấu trúc một chút và lưu trữ xếp hạng ngay trong bộ sưu tập blog, vì vậy blog có thể trông giống như sau:

{
  title: "My New Post",
  body: "Here's my new post. It is great. ...",
  likes: 20,
  dislikes: 5,
  ...
  rates: [
    { client_id: (id of client), rate: 5 },
    { client_id: (id of another client), rate: 3 },
    { client_id: (id of a third client), rate: 10 }
  ]
}

Ý tưởng là các đối tượng trong rates mảng chứa tất cả dữ liệu bạn cần để hiển thị mục nhập blog, hoàn chỉnh với xếp hạng, ngay trong tài liệu duy nhất. Nếu bạn cũng cần truy vấn tỷ lệ theo một cách khác (ví dụ:tìm tất cả các xếp hạng do người dùng X thực hiện) và trang web có nhiều người đọc, bạn có thể xem xét cũng lưu trữ dữ liệu trong một Rates bộ sưu tập như bạn đang làm bây giờ. Chắc chắn, dữ liệu nằm ở hai nơi và khó cập nhật hơn, nhưng đó có thể là một chiến thắng chung cuộc sau khi bạn phân tích ứng dụng của mình và cách ứng dụng truy cập dữ liệu của bạn.

Lưu ý rằng bạn có thể áp dụng các chỉ mục sâu vào cấu trúc của tài liệu, vì vậy, ví dụ:bạn có thể lập chỉ mục News.rates.client_id và sau đó bạn có thể nhanh chóng tìm thấy bất kỳ tài liệu nào trong News bộ sưu tập mà một người dùng cụ thể đã xếp hạng.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tổng số MongoDB đang chạy giống như tổng hợp các bản ghi trước đó cho đến khi xuất hiện giá trị

  2. Cách xuất kết quả truy vấn MongoDB sang tệp CSV

  3. MongoDB $ asin

  4. MongoDB Seattle 2014

  5. Tôi đang làm gì sai với bản cập nhật $ set và $ inc