Los documentos de MongoDB actualmente están restringidos a un máximo de 16 MB, por lo que, suponiendo que los cálculos de Gilbert sean precisos, no podrá almacenar los 6 millones de user_id
s en la Post
documento.
Sin embargo, podría considerar almacenar los votos en el User
documento en su lugar (es decir, el post_id
s que votó el usuario en particular). Es mucho menos probable que un usuario vote en 6 millones de publicaciones diferentes, por lo que no alcanzarás el límite de tamaño tan rápido.
Otra forma de manejar esto:si espera muchos votos para una publicación en particular, es posible que desee almacenar los votos fuera de la Post
documentos en una colección separada y hacer una consulta adicional, similar a una tabla JOIN de muchos a muchos en modo SQL:
user_votes { user_id: ObjectId(...), post_id: ObjectId(...), vote:-1 }
y cree un índice compuesto en (user_id, post_id).