Atualmente, os documentos do MongoDB estão restritos a um máximo de 16 MB, portanto, supondo que os cálculos de Gilbert sejam precisos, você não poderá armazenar todos os 6 milhões de
user_id
s no Post
documento. No entanto, você pode considerar armazenar os votos no
User
documento (ou seja, o post_id
s que o usuário em particular votou). É muito menos provável que um usuário vote em 6 milhões de posts diferentes, dessa forma você não atingirá o limite de tamanho tão rapidamente. Outra maneira de lidar com isso:se você espera tantos votos para um post específico, você pode querer armazenar os votos fora do
Post
documentos em uma coleção separada e fazer uma consulta adicional, semelhante a uma tabela JOIN muitos para muitos no estilo SQL:user_votes { user_id: ObjectId(...), post_id: ObjectId(...), vote:-1 }
e crie um índice composto em (user_id, post_id).