armazenar upvotes / downvotes em mongodb

Eu tenho uma coleção dePosts eUsers onde os usuários podem fazer upvote / downvote de cada post. Qual seria a melhor maneira de armazenar isso em um banco de dados mongodb para garantir que os usuários não possam votar em um determinado documento mais de uma vez?

A solução nosql-ish mais simples que eu criei é armazenar uma série de user_ids que votaram dentro de cadaPost documento (ou mesmo matriz de(user_id, vote) Ondevote é +1 ou -1 para que os usuários possam alterar seu voto). É uma boa ideia do ponto de vista do desempenho, dado que cada post pode ter milhares de votos?

E quanto a sites realmente populares, como o Reddit, onde os principais posts podem ter centenas de milhares de votos?

questionAnswers(2)

yourAnswerToTheQuestion