MongoDB-dokumenter er i øjeblikket begrænset til et maksimum på 16 MB, så forudsat at Gilberts beregninger er nøjagtige, ville du ikke være i stand til at gemme alle 6 millioner user_id
s i Post
dokument.
Du kan dog overveje at gemme stemmerne i User
dokument i stedet (dvs. post_id
). s, som den pågældende bruger stemte på). Det er meget mindre sandsynligt, at en bruger stemmer på 6 millioner forskellige indlæg, så på denne måde når du ikke størrelsesgrænsen så hurtigt.
En anden måde at håndtere dette på:Hvis du forventer, at der er mange stemmer for et bestemt indlæg, vil du måske gemme stemmerne uden for Post
dokumenter i en separat samling og lav en ekstra forespørgsel, der ligner en mange-til-mange JOIN-tabel på SQL-måde:
user_votes { user_id: ObjectId(...), post_id: ObjectId(...), vote:-1 }
og opret et sammensat indeks på (user_id, post_id).