$currentOp (aggregation)

在本页面

Definition

3.6 版的新功能。

  • $currentOp
    • 返回文档流,其中包含有关 MongoDB 部署的活动和/或休眠操作的信息。要运行$currentOp,请使用admin数据库上的db.aggregate()帮助器。

$currentOpcurrentOp命令和db.currentOp方法提供了更好的替代方法。后两个命令仅限于在单个文档中返回所有操作,该操作不能超过最大 16MB BSON 大小。由于$currentOp管道返回游标,因此它们不受这些限制。

$currentOp还使您可以在文档通过管道时对结果执行任意转换。

$currentOp将选项文档作为其操作数。

{ $currentOp: { allUsers: <boolean>, idleConnections: <boolean> } }

指定一个空文档以使用默认值。

Behavior

OptionDescription
allUsers布尔值。如果设置为false,则$currentOp将仅报告属于运行该命令的用户的操作。如果设置为true,则$currentOp将报告属于所有用户的操作。


Note





要与{ allUsers : true }一起运行$currentOp,必须具有inprog特权。



默认为false
| idleConnections |布尔值。如果设置为false,则$currentOp将仅报告活动操作。如果设置为true,则将返回所有操作,包括空闲连接。
默认为false

Constraints

  • $currentOp必须是管道中的第一阶段。

  • $currentOp开头的管道只能在admin数据库上运行。

  • 在启用了身份验证的独立集或副本集上,如果allUsers参数设置为 true,则需要inprog特权才能运行$currentOp

  • 在分片群集上,需要inprog特权才能运行所有$currentOp管道。

Example

下面的示例在第一阶段运行$currentOp操作,并在第二阶段过滤该操作的结果。

use admin
db.aggregate( [
   { $currentOp : { allUsers: true, idleConnections: true } },
   { $match : { shard: "shard01" } }
] )