実行しているクエリに合わせて最適化する必要があります。
これがあなたの説明に基づいた私の最善の推測です。
各顧客のすべてのクレジットカードを知りたいと思うかもしれないので、それらの配列を顧客オブジェクト内に保持します。また、支払いごとに顧客参照が必要になる場合もあります。これにより、支払い文書は比較的小さく保たれます。
Paymentオブジェクトには、自動的に独自のIDとインデックスがあります。おそらく、顧客参照にもインデックスを追加することをお勧めします。
これにより、顧客オブジェクト全体を毎回保存しなくても、顧客ごとの支払いをすばやく検索できます。
「すべての顧客が先月支払った平均金額」などの質問に回答したい場合 代わりに、サイズの大きいデータセットに対してマップ/リデュースが必要になります。この応答は「リアルタイム」ではありません。顧客への「参照」を保存することで、これらのマップ削減にはおそらく十分であることがわかります。
それで、あなたの質問に直接答えるために: MongoDBは、多くの、多くの小さなドキュメントを好むように設計されていますか、それとも少数の大きなドキュメントを好むように設計されていますか?
MongoDBは、インデックス付きエントリを非常に迅速に検索するように設計されています。 MongoDBは、少数を見つけるのに非常に優れています。 大きな干し草の山の中の針。 MongoDBはではありません ほとんどを見つけるのがとても上手です 干し草の山の針の。したがって、最も一般的なユースケースを中心にデータを構築し、まれなユースケースのマップ/リデュースジョブを作成します。