MongoDB-dokument är för närvarande begränsade till maximalt 16 MB, så förutsatt att Gilberts beräkningar är korrekta, skulle du inte kunna lagra alla 6 miljoner user_id
s i Post
dokumentera.
Du kan dock överväga att lagra rösterna i User
dokument istället (d.v.s. post_id
). som den specifika användaren röstade på). Det är mycket mindre troligt att en användare röstar på 6 miljoner olika inlägg, så på detta sätt når du inte storleksgränsen lika snabbt.
Ett annat sätt att hantera detta:Om du förväntar dig att många röster för ett visst inlägg, kanske du vill lagra rösterna utanför Post
dokument i en separat samling och gör en ytterligare fråga, liknande en många-till-många JOIN-tabell på SQL-sätt:
user_votes { user_id: ObjectId(...), post_id: ObjectId(...), vote:-1 }
och skapa ett sammansatt index på (user_id, post_id).