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

hệ thống bỏ phiếu đơn giản với MongoDB

Khi bạn làm theo cách đó, bạn sẽ không theo dõi người dùng nào đã bỏ phiếu, vì vậy người dùng có thể bỏ phiếu nhiều lần. Điều đó chắc chắn không có lợi cho bạn.

Vì lý do đó, tôi sẽ thêm một mảng "phiếu bầu" vào mỗi bài viết bao gồm một đối tượng cho mỗi phiếu bầu xác định duy nhất người dùng đã thực hiện nó:

votes: [ 
        { voter:"name or ID or IP address or some other unique identifier for the person who voted",
          vote:-1 },
        { voter:"someone else",
          vote:1 },
        { voter:"and someone entirely different",
          vote:-1 }
    ]

Khi bạn tạo một chỉ mục duy nhất trên ID bài viết và votes.voter, bạn đã đảm bảo rằng không ai có thể bỏ phiếu hai lần cho một bài viết.

Khi bạn sử dụng giá trị "-1" cho downvote và "1" cho upvote, bạn có thể tính tổng điểm của một bài viết bằng cách sử dụng hàm tổng hợp $ sum (Nó cũng sẽ dễ dàng cho phép bạn giới thiệu các phiếu bầu có trọng số sau này, khi bạn cảm thấy thích nó).




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb - các trường trùng lặp trong $ set và $ setOnInsert

  2. Không kết nối được Mongolab với MongodbShell

  3. .get () yêu cầu các hàm gọi lại nhưng có [đối tượng Không xác định]

  4. Giới hạn kết quả trong MongoDB nhưng vẫn nhận được đầy đủ?

  5. Lên lịch công việc Node.js năm phút một lần