确定针对联合数据库实例的查询状态
您可以使用 $currentOp (聚合)来确定运行的查询的状态。 要运行 $currentOp
,请使用db.aggregate助手。
注意
如果您是管理员用户,则可以使用 $currentOp
allUsers
选项查看所有查询。
$currentOp必须针对admin
数据库运行。
注意
如果您的聚合管道仅包含$currentOp阶段,则Atlas Data Federation不会实施对并行查询的最大数量的限制。 即使达到最大并行查询数,也可以运行仅包含$currentOp阶段的查询。
语法
db.aggregate([{$currentOp: {} }])
输出
$currentOp返回包含以下字段的文档:
字段 | 类型 | 说明 |
---|---|---|
$currentOp.type | 字符串 | 操作类型。 值始终为 op 。 |
$currentOp.opid | ObjectId格式的操作的唯一标识符。 该字段值与您可以在错误和日志中看到的 correlationID 相同。 | |
$currentOp.client | 字符串 | 发起操作的客户端连接的 IP 地址(或主机名)和临时端口。 |
$currentOp.clientMetadata | 文档 | 其他客户端信息,例如客户端:
|
$currentOp.active | 布尔 | 指定操作是否已开始。 如果操作已开始或完成,则值为 true ;如果操作空闲,则值为false 。 |
$currentOp.currentOpTime | 操作的开始时间。 | |
$currentOp.ns | 字符串 | |
$currentOp.command | 文档 | 包含与此操作关联的命令对象的文档。 |
$currentOp.msg | 字符串 | 描述操作状态和进度的消息。 |
$currentOp.progress | 文档 | 包含操作已完成工作量的文档。 |
$currentOp.progress.workDone | 整型 | 随着文档在管道中移动而增加的数字,表示在完成查询方面已取得进展。 此数字不是百分比,不能用于估计剩余工作量。 |
示例
对于以下示例,假设以下查询之一正在入门教程中描述的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
collection运行的上一个查询的信息:
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 } }