MongoDBドキュメントは現在最大16MBに制限されているため、Gilbertの計算が正確であると仮定すると、600万のuser_idすべてを保存することはできません。 s Post 資料。
ただし、投票をUserに保存することを検討できます。 代わりにドキュメント(つまり、post_id 特定のユーザーが投票したもの)。ユーザーが600万の異なる投稿に投票する可能性ははるかに低いため、この方法ではサイズ制限にすぐに到達することはありません。
これを処理する別の方法:特定の投稿に多数の投票が予想される場合は、投票をPostの外部に保存することをお勧めします。 別のコレクションにあるドキュメントを作成し、SQL形式の多対多のJOINテーブルと同様に、追加のクエリを実行します。
user_votes { user_id: ObjectId(...), post_id: ObjectId(...), vote:-1 }
(user_id、post_id)に複合インデックスを作成します。