Atlas Search クエリは集計パイプライン ステージ内で実行されます。これは、集計を実行するための推奨方法です。
集計操作は、複数のドキュメントを処理し、計算結果を返します。 集計操作を使用すると、次のことができます。
複数のドキュメントの値をグループ化します。
グループ化されたデータに対して操作を実行して、1 つの結果を返します。
時間の経過に伴うデータの変化を分析します。
集計パイプラインの最初のステージとして、$search
ステージまたは$searchMeta
ステージのいずれかを使用できます。
集計パイプライン ステージ | 説明 |
---|---|
全文検索を実行し、追加の検索メタデータと共にドキュメントの順序付きリストを返します。 | |
全文検索を実行し、ドキュメントを取得せずにメタデータを返します。 |
$search
ステージまたは $searchMeta
ステージが完了した後、追加の集計ステージを使用してドキュメントをさらに処理することができます。たとえば、他のステージに加えて、次のステージを1つ以上使用することができます。
集計パイプライン ステージ | 説明 |
---|---|
パイプラインの次のステージに渡されるドキュメントの数を制限します。 | |
ステージに入ったドキュメントをスキップし、残りのドキュメントをパイプラインの次のステージに渡します。 | |
リクエストされたフィールドを含むドキュメントをパイプラインの次のステージに渡します。 | |
ドキュメントに新しいフィールドを追加します。 | |
同じ入力ドキュメントセット上の単一ステージ内の複数の集計パイプラインを処理します。 | |
指定されたクエリに基づいてドキュメントをフィルターし、一致したドキュメントを次のパイプラインステージに渡します。 | |
同じフィールドまたは式を持つドキュメントをグループキーで1つのドキュメントに統合します。 | |
同じデータベース内のコレクションへの左外部結合を実行して 、"join"コレクションのドキュメントをフィルタリングして処理します。 |
これらのステージを集計パイプラインに追加する際には、パフォーマンスに大きな影響を与える可能性があることを考慮してください。
パフォーマンスを向上させるために、検索結果には $limit
を使用し、必要に応じてページネーションを行い、参照点より後の検索結果を取得することをお勧めします。