MongoDB-documenten zijn momenteel beperkt tot maximaal 16 MB, dus aangenomen dat de berekeningen van Gilbert nauwkeurig zijn, zou u niet alle 6 miljoen user_id
kunnen opslaan s in de Post
document.
U kunt echter overwegen de stemmen op te slaan in de User
document in plaats daarvan (d.w.z. de post_id
s waar de specifieke gebruiker op heeft gestemd). Het is veel minder waarschijnlijk dat een gebruiker op 6 miljoen verschillende berichten stemt, dus op deze manier bereik je niet zo snel de maximale grootte.
Een andere manier om dit aan te pakken:als je verwacht dat er veel stemmen op een bepaalde post komen, wil je misschien de stemmen buiten de Post
opslaan. documenten in een aparte verzameling en voer een aanvullende query uit, vergelijkbaar met een veel-op-veel JOIN-tabel in SQL-mode:
user_votes { user_id: ObjectId(...), post_id: ObjectId(...), vote:-1 }
en maak een samengestelde index op (user_id, post_id).