almacenar upvotes / downvotes en mongodb

Tengo una coleccion dePosts yUsers donde los usuarios pueden votar a la altura de cada publicación. ¿Cuál sería la mejor manera de almacenar esto en una base de datos mongodb para asegurarse de que los usuarios no puedan votar por un documento dado más de una vez?

La solución nosql-ish más simple que se me ocurrió es almacenar una serie de user_ids que votaron dentro de cada unoPost documento (o incluso matriz de(user_id, vote) dóndevote es +1 o -1 para que los usuarios puedan cambiar su voto). ¿Es una buena idea desde el punto de vista del rendimiento dado que cada publicación puede tener miles de votos?

¿Qué pasa con los sitios web realmente populares como Reddit donde las publicaciones principales pueden tener cientos de miles de votos?

Respuestas a la pregunta(2)

Su respuesta a la pregunta