参考 > 参考 > mongo Shell方法 > 数据库方法 > db.currentOp()
db.
currentOp
()¶返回一个文档,其中包含有关数据库实例正在进行的操作的信息。该db.currentOp()
方法包装数据库命令currentOp
。
注意
由于currentOp
命令和
db.currentOp()
帮助程序在单个文档中返回结果,currentOp
因此结果集的总大小受文档最大16MB BSON大小限制。
从3.6版开始,MongoDB提供了$currentOp
聚合阶段。该$currentOp
阶段在文件流上返回一个光标,每个文件报告一个操作。每个操作文档均受16MB BSON限制,但是与currentOp
命令不同,结果集的总大小没有限制。
因此,$currentOp
聚集阶段比currentOp
命令及其
mongo
外壳帮助程序更可取db.currentOp()
。
db.currentOp()
具有以下形式:
db.currentOp()
可以采用以下可选
参数:
参数 | 类型 | 描述 |
---|---|---|
运作 | 布尔值或文档 | 可选的。指定要报告的操作。可以传递布尔值或文档:
|
db.currentOp()
可以接受过滤器文档或布尔参数。
如果将筛选器文档传递给db.currentOp()
,则输出仅返回与筛选器匹配的当前操作的信息。筛选器文档可以包含:
领域 | 描述 |
---|---|
"$ownOps" |
布尔值。如果设置为 在 3.2.9版中的新功能。 |
"$all" |
布尔值。如果设置为 如果文档包括沿
输出字段的条件,只
适用。 |
<过滤器> |
如果文档包括沿
输出字段的条件,只适用。 |
在传递true
到db.currentOp()
相当于通过的文件中。以下操作是等效的:{ "$all": true }
db.currentOp
和
数据库配置报告对所有CRUD操作,主要包括以下相同的基本诊断信息:
aggregate
count
delete
distinct
find
(OP_QUERY和
command
)findAndModify
getMore
(OP_GET_MORE和
command
)insert
mapReduce
update
这些操作还包括在慢查询的日志记录中(slowOpThresholdMs
有关慢查询日志的更多信息,请参阅)。
在运行的系统上authorization
,用户必须具有包括inprog
特权操作的访问权限。
从3.2.9开始,即使没有特权操作,用户也可以在实例上运行以查看自己的操作。db.currentOp( { "$ownOps": true }
)
mongod
inprog
也可以看看
下面的示例将该db.currentOp()
方法与各种查询文档一起使用以过滤输出。
以下示例返回从未产生的所有活动运行操作的信息:
以下示例返回有关db1
运行时间超过3秒的数据库所有活动操作的信息: