MongoDB\Collection::aggregate()
定義
MongoDB\Collection::aggregate()
コレクションに対して集計フレームワーク パイプライン操作を実行します。
function aggregate( array $pipeline, array $options = [] ): Traversable
パラメーター
$pipeline
: 配列- 集計パイプライン操作を指定します。
$options
: 配列必要なオプションを指定する配列。
名前タイプ説明allowDiskUseブール値一時ファイルへの書込みを有効にします。true
に設定すると、集計ステージはdbPath
ディレクトリの_tmp
サブディレクトリにデータを書込むことができます。batchSizeintegerカーソルのバッチ サイズを指定します。これは最初の
aggregate
コマンドと後続のgetMore
コマンドの両方に適用されます。 これにより、サーバーからの応答ごとに返されるドキュメントの最大数が決まります。0
の BatchSize はその点で特別であり、最初のaggregate
コマンドにのみ適用されます。後続のgetMore
コマンドは、サーバーのデフォルトのバッチ サイズを使用します。 これは、サーバー側での目立った作業なしに、aggregate
からのカーソルやエラーをすばやく返すのに役立つ場合があります。bypassDocumentValidationブール値コーデックMongoDB\Codec\DocumentCodecドキュメントのエンコードまたはデコードに使用するコーデック。 このオプションは
typeMap
オプションと相互に排他的です。デフォルトはコレクションのコーデック。 デフォルトの
codec
オプションの継承は、typeMap
オプションの継承よりも優先されます。バージョン 1.17 の新機能。
collationarray|object照合順序を指定すると、大文字や小文字、アクセント記号など、string を比較するための言語独自のルールを指定できます。 照合を指定する場合、
locale
フィールドは必須です。その他の照合フィールドはすべてオプションです。 フィールドの説明については、 「照合ドキュメント」 を参照してください。照合が指定されていないが、コレクションにデフォルトの照合がある場合、操作はコレクションに指定された照合を使用します。 コレクションにも操作にも照合が指定されていない場合、MongoDB では以前のバージョンで使用されていた単純なバイナリ比較によって string が比較されます。
comment混合データベースプロファイラ、 currentOp出力、およびログから操作を追跡するのに役立つ任意のコメントを指定できるようにします。
コメントには、サーバー バージョン 4.4 以上の有効な BSON タイプ であればどれでもかまいません。 以前のサーバー バージョンでは string 値のみがサポートされていました。
バージョン 1.3 で追加。
explainブール値パイプラインの処理に関する情報を返すかどうかを指定します。
バージョン 1.4 で追加。
hintstring|array|object使用するインデックス。 インデックス名を string またはインデックス キー パターンをドキュメントとして指定します。 指定すると、クエリ システムはヒント指定したインデックスを使用するプランのみを考慮します。
バージョン 1.3 で追加。
letarray|objectパラメーター名と値のマップ。 値は、ドキュメント フィールドを参照しない定数または閉じた式である必要があります。 その後、パラメーターには 集計式コンテキスト で変数としてアクセスできます(例:
$$var
)。これは 5.0 より前のサーバー バージョンではサポートされていないため、使用された場合は実行時に例外が発生します。
バージョン 1.9 の新機能。
maxTimeMSintegerカーソルに対する情報処理操作の累積時間制限(ミリ秒単位)。 MongoDB は、次の割り込みポイントが最も近い時点で操作を中止します。
ReadConcern操作に使用する読み取り保証。 デフォルトはコレクションの読み取り保証 (read concern) です。
トランザクションの一部である個々の操作に対して読み取り保証を指定することはできません。 代わりに 、トランザクションを開始する ときに
readConcern
オプションを設定します。readPreference操作に使用する読み取り設定。 コレクションの読み込み設定(read preference)がデフォルトで設定されます。
セッション操作に関連付けるクライアント セッション。
バージョン 1.3 で追加。
typeMap配列型マップ カーソルに適用される 。これは、BSON ドキュメントが PHP 値に変換される方法を決定します。コレクションのタイプ マップがデフォルトになります。
writeConcern操作に使用する書込み保証 ( write concern )。 コレクションの書込み保証 (write concern) のデフォルトです。
トランザクションの一部である個々の操作に対して書込み保証 (write concern) を指定することはできません。 代わりに 、トランザクションを開始する ときに
writeConcern
オプションを設定します。
Return Values
MongoDB\Driver\Cursor または ArrayIterator オブジェクト。どちらの場合も、戻り値は Triggers になります。
エラーと例外
MongoDB\Exception\UnexpectedValueException
サーバーからのコマンド応答が不正な形式であった場合、。
MongoDB\Exception\UnsupportedException
オプションが使用され、選択したサーバーでサポートされていない場合(例: collation
、 readConcern
、 writeConcern
)。
MongoDB\Exception\InvalidArgumentException
は、パラメータまたはオプションの解析に関連するエラーの場合は です。
MongoDB\Driver\Exception\RuntimeException 拡張レベルのその他のエラー(例:)。
動作
MongoDB\Collection::aggregate()
は MongoDB\Driver\Cursor を返します オブジェクト。
例
次の集計例では、 names
というコレクションを使用してfirst_name
フィールドをグループ化し、各グループの結果の合計数をカウントし、結果を名前でソートします。
$collection = (new MongoDB\Client)->test->names; $cursor = $collection->aggregate( [ ['$group' => ['_id' => '$first_name', 'name_count' => ['$sum' => 1]]], ['$sort' => ['_id' => 1]], ] );