MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

armazenando upvotes/downvotes no mongodb


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).