Когато го направите по този начин, няма да проследите кой потребител вече е гласувал, така че потребителите могат да гласуват няколко пъти. Това със сигурност не е във ваш интерес.
Поради тази причина бих добавил масив „гласове“ към всяка статия, който включва обект за всяко гласуване, което уникално идентифицира потребителя, който го е направил:
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 }
]
Когато създадете уникален индекс върху ИД на статията и votes.voter, вече сте гарантирали, че никой не може да гласува два пъти за статия.
Когато използвате стойност „-1“ за гласуване „против“ и „1“ за гласуване „за“, можете да изчислите общия резултат на дадена статия, като използвате функцията за обобщаване на $sum (Също така лесно ще ви позволи да въведете претеглени гласове по-късно, когато почувствате харесвам).