定义
db.currentOp()
返回数据库实例上正在运行的操作信息的文档。
db.currentOp()方法有如下格式:
db.currentOp(<operations>)
db.currentOp()方法可使用如下可选参数:
参数 类型 描述
operations 布尔值或文档 可选。指定报告的操作。可以输入布尔值或一个文档。
指定true,包含空闲连接和系统操作。
指定带有查询条件的文档,只报告匹配条件的操作。
行为
如果传递true给db.currentOp(),该方法返回所有操作的信息,包括空闲连接和系统操作。
db.currentOp(true)
传递true等于传递了一个查询文档{ '$all': true }。
如果传递一个查询文档给db.currentOp(),只返回匹配查询条件的当前操作。
你也可以指定{ '$all: true }查询文档返回所有正在运行的操作信息,包括空闲连接和系统操作。如果
查询文档包括 '$all':true 以及其他查询条件,只会应用 '$all': true。
访问控制
在系统上运行用户授权验证,用户必须有访问inprog行为的权限。
示例
下面的示例使用带有不同查询文档的db.currentOp()方法过滤输出。
等待锁的写操作
下面的示例返回正在等待锁的所有写操作信息:
1
2
3
4
5
6
7
8
9
|
db.currentOp(
{
"waitingForLock"
:
true
,
$
or
: [
{
"op"
: {
"$in"
: [
"insert"
,
"update"
,
"remove"
] } },
{
"query.findandmodify"
: { $exists:
true
} }
]
}
)
|
没有Yields的活动操作
下面的示例返回所有活动的正在运行的还没有Yields的操作的信息:
1
2
3
4
5
6
7
|
db.currentOp(
{
"active"
:
true
,
"numYields"
: 0,
"waitingForLock"
:
false
}
)
|
对于特定数据库的活动操作
下面的示例返回对于数据库db1运行时间大于3秒的所有活动操作:
1
2
3
4
5
6
7
|
db.currentOp(
{
"active"
:
true
,
"secs_running"
: {
"$gt"
: 3 },
"ns"
: /^db1\./
}
)
|
活动索引操作
下面的示例返回索引创建操作的信息:
1
2
3
4
5
6
7
8
|
db.currentOp(
{
$
or
: [
{ op:
"query"
,
"query.createIndexes"
: { $exists:
true
} },
{ op:
"insert"
, ns: /\.system\.indexes\b/ }
]
}
)
|
参见:https://docs.mongodb.org/manual/reference/method/db.currentOp/
本文转自UltraSQL51CTO博客,原文链接: http://blog.51cto.com/ultrasql/1706393,如需转载请自行联系原作者