Når du ville gøre det på den måde, ville du ikke spore, hvilken bruger der allerede har stemt, så brugerne kan stemme flere gange. Det er bestemt ikke i din interesse.
Af den grund vil jeg tilføje en række "stemmer" til hver artikel, som inkluderer et objekt for hver stemme, som entydigt identificerer den bruger, der lavede den:
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 }
]
Når du opretter et unikt indeks over artikel-id'et og votes.voter, har du allerede sikret dig, at ingen kan stemme to gange på en artikel.
Når du bruger en værdi på "-1" for nedstemme og "1" for stemme op, kan du beregne den samlede score for en artikel ved at bruge funktionen $sum aggregeret (det ville også nemt give dig mulighed for at indføre vægtede stemmer senere, når du føler kan lide det).