MongoDB документите в момента са ограничени до максимум 16MB, така че ако приемем, че изчисленията на Гилбърт са точни, няма да можете да съхраните всичките 6 милиона user_id
s в Post
документ.
Въпреки това можете да обмислите съхраняването на гласовете в User
документ вместо това (т.е. post_id
s, за които конкретният потребител е гласувал). Много по-малка е вероятността потребител да гласува за 6 милиона различни публикации, така че по този начин няма да достигнете ограничението за размер толкова бързо.
Друг начин да се справите с това:Ако очаквате толкова много гласове за определена публикация, може да искате да съхраните гласовете извън Post
документи в отделна колекция и направете допълнителна заявка, подобна на таблица JOIN много към много по SQL начин:
user_votes { user_id: ObjectId(...), post_id: ObjectId(...), vote:-1 }
и създайте съставен индекс на (user_id, post_id).