Les documents MongoDB sont actuellement limités à un maximum de 16 Mo. Par conséquent, en supposant que les calculs de Gilbert sont exacts, vous ne pourrez pas stocker les 6 millions d'user_id
s dans le Post
document.
Cependant, vous pouvez envisager de stocker les votes dans le User
document à la place (c'est-à-dire le post_id
s pour lesquels l'utilisateur particulier a voté). Il est beaucoup moins probable qu'un utilisateur vote sur 6 millions de publications différentes, vous n'atteindrez donc pas la limite de taille aussi rapidement.
Une autre façon de gérer cela :si vous vous attendez à autant de votes pour un message particulier, vous pouvez stocker les votes en dehors du Post
documents dans une collection distincte et effectuez une requête supplémentaire, similaire à une table JOIN plusieurs-à-plusieurs en mode SQL :
user_votes { user_id: ObjectId(...), post_id: ObjectId(...), vote:-1 }
et créer un index composé sur (user_id, post_id).