MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

stocker les votes positifs / négatifs dans mongodb

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