przechowywanie upvotes / downvotes w mongodb

Mam kolekcjęPosts iUsers gdzie użytkownicy mogą głosować / przesyłać wiadomości do każdego posta. Jaki byłby najlepszy sposób przechowywania tego w bazie danych mongodb, aby upewnić się, że użytkownicy nie mogą głosować na dany dokument więcej niż raz?

Najprostszym rozwiązaniem, które wymyśliłem, jest przechowywanie tablicy user_ids, którzy głosowali w każdym z nichPost dokument (lub nawet tablica(user_id, vote) gdzievote to +1 lub -1, dzięki czemu użytkownicy będą mogli zmienić swój głos). Czy to dobry pomysł z punktu widzenia wydajności, ponieważ każdy post może mieć tysiące głosów?

A co z naprawdę popularnymi stronami internetowymi, takimi jak Reddit, w których najwyższe posty mogą mieć setki tysięcy głosów?

questionAnswers(2)

yourAnswerToTheQuestion