MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Upvotes/Downvotes in Mongodb speichern

MongoDB-Dokumente sind derzeit auf maximal 16 MB beschränkt. Unter der Annahme, dass Gilberts Berechnungen korrekt sind, könnten Sie nicht alle 6 Millionen user_id speichern s im Post dokumentieren.

Sie könnten jedoch erwägen, die Stimmen im User zu speichern document (also die post_id s, für die der jeweilige Benutzer gestimmt hat). Es ist viel unwahrscheinlicher, dass ein Benutzer über 6 Millionen verschiedene Beiträge abstimmt, sodass Sie auf diese Weise die Größenbeschränkung nicht so schnell erreichen.

Eine andere Möglichkeit, dies zu handhaben:Wenn Sie so viele Stimmen für einen bestimmten Beitrag erwarten, möchten Sie die Stimmen möglicherweise außerhalb des Post speichern Dokumente in einer separaten Sammlung und führen Sie eine zusätzliche Abfrage durch, ähnlich einer Viele-zu-Viele-JOIN-Tabelle in SQL-Manier:

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

und erstellen Sie einen zusammengesetzten Index für (user_id, post_id).