参考 > 参考 > 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操作,主要包括以下相同的基本诊断信息:
aggregatecountdeletedistinctfind(OP_QUERY和
command)findAndModifygetMore(OP_GET_MORE和
command)insertmapReduceupdate这些操作还包括在慢查询的日志记录中(slowOpThresholdMs有关慢查询日志的更多信息,请参阅)。
在运行的系统上authorization,用户必须具有包括inprog特权操作的访问权限。
从3.2.9开始,即使没有特权操作,用户也可以在实例上运行以查看自己的操作。db.currentOp( { "$ownOps": true }
)mongodinprog
也可以看看
下面的示例将该db.currentOp()方法与各种查询文档一起使用以过滤输出。
以下示例返回从未产生的所有活动运行操作的信息:
以下示例返回有关db1运行时间超过3秒的数据库所有活动操作的信息: