200,000個のオブジェクトを持つAPI呼び出しを介してのみファイルと対話する場合は、問題ありません(私の経験から、これより大きなものは必要ありませんでした)。
あらゆるタスクにWebインターフェースを使用したい場合は、それよりはるかに少ない必要があります。Webインターフェースはコンテンツをフォルダーごとに分割しないため、30,000個のオブジェクトがある場合、Webインターフェースはそれらをページ分割し、アルファベット順に表示します。これは、最大数百のオブジェクトを含むコンテナーでは問題ありませんが、それを超えるとWebインターフェースは使用できなくなります。
数百万のユーザーがいる場合は、ユーザーIDの一部をシャードキーとして使用して、使用するバケットを決定できます。シャードキーの選択については、http://docs.mongodb.org/manual/core/sharding-internals/#sharding-internals-shard-keysを参照してください。Mongoユーザー向けに書かれていますが、ここで適用できます。要点は、ユーザーをある程度均等に分散する属性を選択することです。これにより、バケットごとに必要なファイルの最大数を超えるバケットが1つになりません。
1つの方法は、ユーザーIDを使用することです。これは、最初の桁に基づいてランダムに割り当ててシャーディングできます。この例では、UIDの1234、2234、1123、および2134を使用します。ファイルをUIDの最初の桁で分割したい場合、ユーザーに1234および1123のファイルをコンテナー「files_group_1」に保存します。 「files_group_2」コンテナ内の2234および2134のファイル。
シャードキーを選択する前に、ユーザーが保存する可能性のあるファイルの数を確認してください。たとえば、ユーザーが数百(または数千)のファイルを保存する場合は、UIDの最初の桁よりも一意のキーでシャーディングする必要があります。
お役に立てば幸いです。