MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

съхраняване на гласове за/против в mongodb

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Рекурсивната заявка на Mongodb не работи според очакванията с $graphLookup

  2. Актуализирането на драйвера на Mongodb C# за всички елементи на подмасив е неуспешно, когато масивът е празен

  3. Какви методи на курсора за агрегиране се поддържат от драйверите на Nodejs?

  4. В Mongo каква е разликата между $near и $nearSphere?

  5. Защо MongoDB заема толкова много място?