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
ステージで使用する 書き込みの考慮事項 を表すドキュメント。
互換性
このメソッドは、次の環境でホストされている配置で使用できます。
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" } } ] )