Docs 菜单
Docs 主页
/
MongoDB Atlas
/ /

确定针对联合数据库实例的查询状态

在此页面上

  • 语法
  • 输出
  • 示例

您可以使用 $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

文档

其他客户端信息,例如客户端:

  • ApplicationName

  • 驱动程序名称和版本

  • 操作系统名称、类型、架构和版本

$currentOp.active

布尔

指定操作是否已开始。 如果操作已开始或完成,则值为true ;如果操作空闲,则值为false

$currentOp.currentOpTime

操作的开始时间。

$currentOp.ns

字符串

操作所针对的命名空间。 命名空间由数据库名称和集合名称用点 ( . ) 连接组成;也就是"<database>.<collection>"

$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数据库中的airbnbcollection运行的上一个查询的信息:

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
}
}

后退

管理查询限制

在此页面上