返されたdocが集計で16MBの制限を超える場合、allowDiskUseオプションを使用する必要がありますか?製品環境で「allowDiskUse」オプションを使用する必要がありますか?
制限を回避するためにDB構造またはコードロジックを変更する必要がありますか? 'allowDiskUse'のメリットとデメリットは何ですか? ご協力いただきありがとうございます。バージョン2.6で変更 結果のサイズ制限
:
ハーズは、私が見てきた公式のドキュメントです。
MongoDB 2.6以降、aggregateコマンドはカーソルを返すか、結果をコレクションに格納できます。カーソルを返すか、または結果をコレクションに格納するとき、結果セットの各ドキュメントはBSONドキュメントサイズの制限に従います(現在は16メガバイトです)。 BSONのドキュメントサイズ制限を超える単一のドキュメントがある場合、コマンドはエラーを生成します。この制限は、返される文書にのみ適用されます。パイプライン処理中に文書がこのサイズを超えることがあります。
メモリの制限¶
バージョン2.6で変更されました。
パイプラインステージのRAMの上限は100 MBです。ステージがこの制限を超えると、MongoDBはエラーを生成します。大きなデータセットの処理を可能にするには、allowDiskUseオプションを使用して集約パイプラインステージでデータを一時ファイルに書き込むことができます。 https://docs.mongodb.com/manual/core/aggregation-pipeline-limits/
他のコレクションにデータを出力すると(> 16MB)、コレクションからデータを取得するにはどうすればいいのですか?もう1つのクエリはdb.collection.find()を使用して取得できますか? – Leo
はい、別にそれを照会する必要があります –
初めて「集約」ではなく「find()」を使用するとどうなりますか?効率について何か?私の非常に多くの質問には申し訳ありません。 >< – Leo