AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

db.aggregate()(mongoshメソッド)

db.aggregate()

基礎のコレクションを必要としない、指定された管理および診断パイプラインを実行します。 コレクション データの集計については、 db.collection.aggregate()を参照してください。

重要

mongosh メソッド

このページでは、mongosh メソッドについて記載しています。ただし、データベースコマンドや Node.js などの言語固有のドライバーのドキュメントには該当しません

データベースコマンドについては、aggregate コマンドを参照してください。

MongoDB API ドライバーについては、各言語の MongoDB ドライバー ドキュメントを参照してください。

このメソッドは、次の環境でホストされている配置で使用できます。

  • MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです

注意

このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。

  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

db.aggregate()メソッドの構文は次のとおりです。

db.aggregate( [ <pipeline> ], { <options> } )

注意

db.aggregate() は、パイプラインステージを配列の要素としてではなく、個別の引数として受け入れることができます。pipeline を配列として指定しない場合、options パラメータを指定できません。

pipeline パラメーターは、実行するステージの配列です。パイプラインは、$currentOp または $listLocalSessions など、 基礎のコレクションを必要としない互換性のあるステージで開始する必要があります。

optionsドキュメントには次のフィールドを含めることができます。

フィールド
タイプ
説明

explain

ブール値

任意。メソッドがパイプライン処理に関する情報を返すかどうかを指定します。

例については、 「 集計パイプライン操作に関する情報の返却」を参照してください。

重要: このオプションは、マルチドキュメントトランザクション では使用できません。

allowDiskUse

ブール値

任意。一時ファイルへの書込みを有効にします。true に設定すると、集計操作によって dbPath ディレクトリの _tmp サブディレクトリにデータが書き込まれます。例については、 allowDiskUseByDefault との相互作用 を参照してください。

プロファイラー ログ メッセージ診断ログ メッセージには、メモリ制限のために集計ステージで一時ファイルにデータが書込まれた場合、usedDisk インジケーターが含められます。

cursor

ドキュメント

任意。カーソルの初期バッチするサイズを指定します。cursorフィールドの値は、フィールドbatchSize が含まれるドキュメントです。構文と例については、初期バッチ サイズの指定を参照してください。

maxTimeMS

non-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 ステージには適用されません。

comment

string

任意。データベースプロファイラ、currentOp、およびログから操作を追跡するのに役立つ任意の文字列を指定できます。

writeConcern

ドキュメント

任意。または $out$mergeステージで使用する 書き込みの考慮事項 を表すドキュメント。

このパラメータを省略すると、$out または $merge ステージでデフォルトの書込み保証 (write concern)が使用されます。

次の例えでは、2 つのステージを持つパイプラインを実行します。 最初のステージでは$currentOp操作が実行され、2 番目のステージではその操作の結果がフィルタリングされます。

use admin
db.aggregate( [ {
$currentOp : { allUsers: true, idleConnections: true } }, {
$match : { shard: "shard01" }
}
] )