Quando lo faresti in questo modo, non terresti traccia di quale utente ha già votato, quindi gli utenti possono votare più volte. Sicuramente non è nel tuo interesse.
Per questo motivo aggiungerei un array "votes" a ogni articolo che include un oggetto per ogni voto che identifica in modo univoco l'utente che lo ha fatto:
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 }
]
Quando crei un indice univoco sull'ID articolo e su vote.voter, ti sei già assicurato che nessuno possa votare due volte per un articolo.
Quando utilizzi un valore di "-1" per il voto negativo e "1" per il voto positivo, puoi calcolare il punteggio totale di un articolo utilizzando la funzione di aggregazione $sum (ti permetterebbe anche facilmente di introdurre voti ponderati in un secondo momento, quando ritieni piace).