定義
db.aggregate()基礎のコレクションを必要としない、指定された管理および診断パイプラインを実行します。 コレクション データの集計については、
db.collection.aggregate()を参照してください。重要
mongosh メソッド
このページでは、
mongoshメソッドについて説明します。ただし、データベースコマンドや Node.js などの言語固有のドライバーのドキュメントには該当しません。データベースコマンドについては、
aggregateコマンドを参照してください。MongoDB API ドライバーについては、各言語の MongoDB ドライバー ドキュメントを参照してください。
db.aggregate()メソッドの構文は次のとおりです。db.aggregate( [ <pipeline> ], { <options> } ) pipelineパラメーターは、実行するステージの配列です。$currentOpや$listLocalSessionsなど、基礎のコレクションを必要としない互換性のあるステージで開始する必要があります。optionsドキュメントには、次のフィールドと値を含めることができます。フィールドタイプ説明explainブール値
任意。 メソッドがパイプラインの処理に関する情報を返すことを指定します。
例については、 「 集計パイプライン操作に関する情報の返却」を参照してください。
マルチドキュメントトランザクションでは使用できません。
allowDiskUseブール値
任意。 一時ファイルへの書込みを有効にします。
trueに設定すると、集計操作によってdbPathディレクトリの_tmpサブディレクトリにデータを書込むことができます。 例については、「allowDiskUseByDefaultとの相互作用」を参照してください。プロファイラー ログ メッセージと診断ログ メッセージには、メモリ制限のために集計ステージで一時ファイルにデータが書込まれた場合、
usedDiskインジケーターが含められます。cursorドキュメント
任意。 カーソルの初期バッチ サイズを指定します。
cursorフィールドの値は、フィールドbatchSizeが含まれるドキュメントです。 構文と例については、「初期バッチ サイズの指定」を参照してください。maxTimeMSnon-negative integer
任意。カーソルに対する情報処理操作の時間制限をミリ秒単位で指定します。maxTimeMS の値を指定しない場合、操作はタイムアウトしません。値を
0にすると、デフォルトの無制限動作が明示的に指定されます。MongoDB は、
db.killOp()と同じメカニズムを使用して、割り当てられた時間制限を超えた操作を終了します。MongoDB は、指定された割り込みポイントのいずれかでのみ操作を終了します。bypassDocumentValidationブール値
任意。
$outまたは$merge集計ステージを指定した場合にのみ該当します。db.collection.aggregate()操作中に がスキーマ検証をバイパスできるようにします。これにより、検証要件を満たさないドキュメントを挿入できるようになります。readConcernドキュメント
任意。読み取り保証 (read concern) を指定します。
readConcernオプションの構文は、次のとおりです。readConcern: { level: <value> }次の読み取り保証レベルが利用できます。
"local"。これは、プライマリとセカンダリに対する読み取り操作での、デフォルトの読み取り保証レベルです。"available"。プライマリおよびセカンダリに対する読み取り操作に使用できます。"available"は、プライマリおよびシャーディングされていないセカンダリに対して"local"と同じように動作します。クエリは、インスタンスの最新データを返します。"majority"。WiredTiger ストレージ エンジンを使用するレプリカセットで使用できます。"linearizable"。primaryの読み取り操作にのみ使用できます。"snapshot"。マルチドキュメントトランザクションおよびマルチドキュメントトランザクション以外の特定の読み取り操作で利用可能です。
読み取り保証 (read concern) のレベルについて詳しくは、「読み取り保証 (read concern) レベル」を参照してください。
$outステージは読み取り保証 (read concern)"linearizable"と組み合わせて使用することはできません。db.collection.aggregate()に対して"linearizable"読み取り保証 (read concern) を指定した場合、パイプライン内に$outステージを含めることはできません。$mergeステージは読み取り保証(read concern)"linearizable"と組み合わせて使用することはできません。つまり、db.collection.aggregate()に対して読み取り保証(read concern)"linearizable"を指定した場合、パイプラインに$mergeステージを含めることはできません。collationドキュメント
任意。
操作に使用する照合を指定します。
照合を指定すると、大文字・小文字やアクセント記号など、文字列を比較するための言語独自のルールを指定できます。
照合オプションの構文は次のとおりです。
collation: { locale: <string>, caseLevel: <boolean>, caseFirst: <string>, strength: <int>, numericOrdering: <boolean>, alternate: <string>, maxVariable: <string>, backwards: <boolean> } 照合を指定する場合、
localeフィールドは必須ですが、その他の照合フィールドはすべて任意です。フィールドの説明については、照合ドキュメントを参照してください。照合が指定されていなくても、コレクションにデフォルトの照合が設定されている場合(
db.createCollection()を参照)には、コレクションの照合が使用されます。コレクションにも操作にも照合が指定されていない場合、MongoDB では以前のバージョンで使用されていた単純なバイナリ比較によって文字列が比較されます。
1 つの操作に複数の照合は指定できません。たとえば、フィールドごとに異なる照合を指定できません。また、ソートと検索を一度に実行する場合、検索とソートで別の照合を使用できません。
hint文字列またはドキュメント
任意。集計に使用するインデックス。インデックスは、集計が実行される最初のコレクションまたはビューにあります。
インデックス名、またはインデックス仕様ドキュメントのいずれかによってインデックスを指定します。
hintは$lookupおよび$graphLookupステージには適用されません。commentstring
任意。データベースプロファイラ、currentOp、およびログから操作を追跡するのに役立つ任意の文字列を指定できます。
writeConcernドキュメント
任意。または
$out$mergeステージで使用する 書き込みの考慮事項 を表すドキュメント。
互換性
このメソッドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
注意
このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
例
パイプライン と $currentOp
次の例えでは、2 つのステージを持つパイプラインを実行します。 最初のステージでは$currentOp操作が実行され、2 番目のステージではその操作の結果がフィルタリングされます。
use admin db.aggregate( [ { $currentOp : { allUsers: true, idleConnections: true } }, { $match : { shard: "shard01" } } ] )