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?