MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

memorizzare upvotes/downvotes in mongodb

I documenti MongoDB sono attualmente limitati a un massimo di 16 MB, quindi supponendo che i calcoli di Gilbert siano accurati, non saresti in grado di memorizzare tutti i 6 milioni di user_id s nella Post documento.

Tuttavia, potresti considerare di memorizzare i voti in User documento invece (cioè il post_id s che l'utente in particolare ha votato). È molto meno probabile che un utente voti su 6 milioni di post diversi, quindi in questo modo non raggiungerai il limite di dimensioni così rapidamente.

Un altro modo per gestirlo:se prevedi così tanti voti per un determinato post, potresti voler memorizzare i voti al di fuori del Post documenti in una raccolta separata ed eseguire una query aggiuntiva, simile a una tabella JOIN molti-a-molti in stile SQL:

user_votes { user_id: ObjectId(...), post_id: ObjectId(...), vote:-1 }

e crea un indice composto su (user_id, post_id).