集計フレームワークで発生する可能性のある処理の量は、スキーマによって異なります。
集約フレームワークは、現時点で 1 つのドキュメントの相対のみを出力できます (より大きな出力については、https://jira.mongodb.org/browse/SERVER-3253を参照してください)。次の形式で出力されます。
{
result: { //the result },
ok: 1/0
}
したがって、$group
/から返されるもの$project
が大きすぎて、必要な結果が返されないことを確認する必要があります。ほとんどの場合、$group
これは当てはまりません。数百万行の単純な例でも、16Meg 未満の応答になる可能性があります。
ドキュメントのサイズや実行したい集計クエリのサイズがわからないため、アドバイスできません。
単一の集計操作がシステム RAM の 10% を超えて消費する場合、操作はエラーを生成します。
それは本当に自明です。操作のワーキング セットが大きすぎて 10% を超える RAM (計算フィールドまたはグループ化フィールド$group
の /Computed fields/ $sort
) を使用する場合、操作は機能しません。
集計フレームワークを悪用してアプリのロジックを実行しようとしない限り、この問題に実際に遭遇することはありません。
現在、集計システムは $group 操作をメモリに格納しているため、多数のグループを処理するときに問題が発生する可能性があります。
$group
をメモリ内で実行しないのは非常に難しい (フィールドを「グループ化」する) ため、これはそのグループに対する操作もメモリ内にあることを意味します$sort
。