Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

db.aggregate()

項目一覧

  • 定義
  • 互換性
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が含まれるドキュメントです。 構文と例については、「初期バッチ サイズの指定」を参照してください。
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 の読み取り操作にのみ使用できます。

読み取り保証 (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 ステージでデフォルトの書き込み保証を使用しません。

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

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

注意

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

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

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

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

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

戻る

db.adminCommand

項目一覧