そのようにすると、どのユーザーがすでに投票したかを追跡できないため、ユーザーは複数回投票できます。それは確かにあなたの興味ではありません。
そのため、各記事に「投票」の配列を追加します。この配列には、投票を行ったユーザーを一意に識別する各投票のオブジェクトが含まれています。
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 }
]
記事IDとvotes.voterに対して一意のインデックスを作成すると、誰も記事に2回投票できないようになります。
反対票に「-1」、賛成票に「1」の値を使用すると、$ sum集計関数を使用して記事の合計スコアを計算できます(後で、気が向いたときに加重投票を簡単に導入できます。いいね)