フェデレーティッドデータベースインスタンスに対するクエリのステータスの決定
$currentOp (集計)を使用して実行中のクエリのステータスを判断できます。 $currentOp
を実行するには、 db.aggregateヘルパーを使用します。
注意
管理者ユーザーは、 $currentOp
allUsers
オプションを使用してすべてのクエリを表示できます。
$currentOpはadmin
データベースに対して実行する必要があります。
注意
集計パイプラインに$currentOpステージのみが含まれている場合、Atlas Data Federation は同時クエリの最大数に制限を適用しません。 同時クエリの最大数に達した後でも、 $currentOpステージを含むクエリを実行できます。
構文
db.aggregate([{$currentOp: {} }])
出力
$currentOpは、次のフィールドを持つドキュメントを返します。
フィールド | タイプ | 説明 |
---|---|---|
$currentOp.type | string | 操作のタイプ。 値は常に op です。 |
$currentOp.opid | ObjectId形式の操作の一意の識別子。 フィールド値は、エラーやログで確認できる correlationID と同じです。 | |
$currentOp.client | string | IP アドレス(またはホスト名)と、操作の発信元となるクライアント接続のエフェメラル ポート。 |
$currentOp.clientMetadata | ドキュメント | クライアントなどの追加のクライアント情報。
|
$currentOp.active | ブール値 | 操作が開始されたかどうかを指定します。 値は、操作が開始または完了している場合は true で、操作がアイドル状態の場合はfalse です。 |
$currentOp.currentOpTime | 操作の開始時間。 | |
$currentOp.ns | string | |
$currentOp.command | ドキュメント | この操作に関連付けられたコマンドオブジェクトを含むドキュメント。 |
$currentOp.msg | string | 操作のステータスと進行状況を説明するメッセージ。 |
$currentOp.progress | ドキュメント | 操作に対して実行された作業量を含むドキュメント。 |
$currentOp.progress.workDone | integer | ドキュメントがパイプラインを通過するにつれて増加する数値は、クエリの完了に向けて進行状況が行われたことを示します。 この数値はパーセンテージではなく、残っている作業量を見積もるために使用することはできません。 |
例
以下の例では、「 を使い始める」チュートリアルで説明されているsample
データベース内のairbnb
コレクションで次のいずれかのクエリが実行されているとします。
db.airbnb.find( { "address.market" : "Porto", "review_scores.review_scores_rating": {$gt: 79}}).comment("Find properties in Porto")
db.airbnb.aggregate( [ { $match: { "address.market": "Porto", "review_scores.review_scores_rating": {$gt: 79} } } ], { comment: "Find properties in Porto" })
次の例では、 sample
データベース内のairbnb
コレクションで実行されていた以前のクエリに関する情報を返します。
db.aggregate([{$currentOp: {} }])
$currentOpは次のドキュメントを返します。 workDone
フィールドは、 $currentOp
が実行された時点で770ドキュメントが処理されていることを示します。
{ "type" : "op", "opid" : ObjectId("1635fa35bf73f4320c6f99d0"), "client" : "73.231.201.205:62351", "clientMetadata" : { "application" : { "name" : "MongoDB Shell" }, "driver" : { "name" : "MongoDB Internal Client", "version" : "4.2.0" }, "os" : { "type" : "Darwin", "name" : "Mac OS X", "architecture" : "x86_64", "version" : "18.7.0" } }, "active" : true, "currentOpTime" : ISODate("2020-03-26T12:51:43.291Z"), "ns" : "sample.airbnb", "command" : { "find" : "airbnb", "filter" : { "address.market" : "Porto", "review_scores.review_scores_rating" : { "$gt" : 79 } }, "comment" : "Find properties in Porto", "lsid" : { "id" : UUID("2211f8ac-56b2-4ba4-bb0c-2e5dd5b7cc21") }, "$db" : "sample" }, "msg" : "work done: 770", "progress" : { "workDone" : 770 } } { "type" : "op", "client" : "73.231.201.205:62353", "clientMetadata" : { "application" : { "name" : "MongoDB Shell" }, "driver" : { "name" : "MongoDB Internal Client", "version" : "4.2.0" }, "os" : { "type" : "Darwin", "name" : "Mac OS X", "architecture" : "x86_64", "version" : "18.7.0" } }, "active" : true, "currentOpTime" : ISODate("2020-03-26T12:51:47.380Z"), "ns" : "admin.$cmd.aggregate", "command" : { "aggregate" : 1, "pipeline" : [ { "$currentOp" : { } } ], "cursor" : { }, "lsid" : { "id" : UUID("045ea383-65d7-4e88-a989-37b7a8da23bc") }, "$db" : "admin" }, "msg" : "work done: 0", "progress" : { "workDone" : 0 } }