जब आप इसे इस तरह से करेंगे, तो आप ट्रैक नहीं कर पाएंगे कि किस उपयोगकर्ता ने पहले ही मतदान कर दिया है, इसलिए उपयोगकर्ता कई बार वोट कर सकते हैं। यह निश्चित रूप से आपके हित में नहीं है।
इस कारण से मैं प्रत्येक लेख में एक सरणी "वोट" जोड़ूंगा जिसमें प्रत्येक वोट के लिए एक वस्तु शामिल होगी जो विशिष्ट रूप से उस उपयोगकर्ता की पहचान करती है जिसने इसे बनाया है:
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 }
]
जब आप लेख आईडी और वोट पर एक अद्वितीय अनुक्रमणिका बनाते हैं। मतदाता, आपने पहले ही सुनिश्चित कर लिया है कि कोई भी एक लेख के लिए दो बार मतदान नहीं कर सकता है।
जब आप डाउनवोट के लिए "-1" और अपवोट के लिए "1" के मान का उपयोग करते हैं तो आप $sum एग्रीगेट फ़ंक्शन का उपयोग करके किसी लेख के कुल स्कोर की गणना कर सकते हैं (यह आपको बाद में भारित वोटों को आसानी से पेश करने की अनुमति देगा, जब आपको लगता है कि इसे पसंद करें)।