MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

sistem pemungutan suara sederhana dengan MongoDB

Ketika Anda melakukannya dengan cara itu, Anda tidak akan melacak pengguna mana yang telah memilih, sehingga pengguna dapat memilih beberapa kali. Itu pasti bukan minat Anda.

Untuk alasan itu saya akan menambahkan larik "suara" ke setiap artikel yang menyertakan objek untuk setiap suara yang secara unik mengidentifikasi pengguna yang membuatnya:

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 }
    ]

Saat Anda membuat indeks unik di atas ID artikel dan vote.voter, Anda telah memastikan bahwa tidak seorang pun dapat memilih dua kali untuk sebuah artikel.

Ketika Anda menggunakan nilai "-1" untuk downvote dan "1" untuk upvote, Anda dapat menghitung skor total sebuah artikel dengan menggunakan fungsi agregat $sum (Ini juga akan dengan mudah memungkinkan Anda untuk memasukkan suara berbobot nanti, ketika Anda merasa suka).




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara mengganti nama bidang saat melakukan pencarian/proyeksi di MongoDB?

  2. Terapkan pelengkapan otomatis di MongoDB

  3. Mongodb TTL kedaluwarsa dokumen lebih awal

  4. Buat Indeks Teks dengan Bobot Bidang Berbeda di MongoDB

  5. Cara membuat kueri khusus menggunakan Django-nonrel dan mongodb