これについてはここで少し説明します。最初に読んでください: https://stackoverflow.com/a/27285313/ 68567
あなたの場合、オプション3(データの一部をプライマリモデルに保持する)がおそらく最良です。重要なのは、無制限のアレイの成長を回避することです。 。
これは、Mongodbがドキュメントを割り当てる方法と関係があります。 http://docs.mongodb.org/manual/core/storage/ 「MongoDB内のすべてのドキュメントは、ドキュメント自体と余分なスペース、つまりパディングを含むレコードに保存されます。これにより、更新の結果としてドキュメントを拡張できます。」
ノードが新しいドキュメントを割り当てると、挿入されたドキュメントのサイズとコレクションにすでに存在するドキュメントのサイズに基づいてスペースが割り当てられます。 (上記のリンクで詳細をお読みください。)他のドキュメントよりも桁違いに大きいドキュメントがある場合、これは断片化につながる可能性があります。
'comments'サブドキュメント配列にドキュメントが多すぎないようにする方法は、$pushコマンドと$sliceコマンドを使用することです。
したがって、「最新の5」を保存し、アイテムが最初にロードされたときにそれらを表示します。 (または最も古い、または使用したいその他の並べ替え基準。)次に、ユーザーがさらに読み込む方法を提供します。これにより、すべてを含むコレクションへの個別のラウンドトリップが実行されます。