天天看点

MongoDB查看当前操作db.currentOp()

定义

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

<code>db.currentOp(   </code>

<code>   </code><code>{    </code>

<code>     </code><code>"waitingForLock"</code> <code>: </code><code>true</code><code>,    </code>

<code>     </code><code>$</code><code>or</code><code>: [    </code>

<code>        </code><code>{ </code><code>"op"</code> <code>: { </code><code>"$in"</code> <code>: [ </code><code>"insert"</code><code>, </code><code>"update"</code><code>, </code><code>"remove"</code> <code>] } },    </code>

<code>        </code><code>{ </code><code>"query.findandmodify"</code><code>: { $exists: </code><code>true</code> <code>} }    </code>

<code>    </code><code>]    </code>

<code>   </code><code>}    </code>

<code>)</code>

没有Yields的活动操作

下面的示例返回所有活动的正在运行的还没有Yields的操作的信息:

<code>     </code><code>"active"</code> <code>: </code><code>true</code><code>,    </code>

<code>     </code><code>"numYields"</code> <code>: 0,    </code>

<code>     </code><code>"waitingForLock"</code> <code>: </code><code>false</code>    

对于特定数据库的活动操作

下面的示例返回对于数据库db1运行时间大于3秒的所有活动操作:

<code>     </code><code>"secs_running"</code> <code>: { </code><code>"$gt"</code> <code>: 3 },    </code>

<code>     </code><code>"ns"</code> <code>: /^db1\./    </code>

活动索引操作

下面的示例返回索引创建操作的信息:

<code>    </code><code>{    </code>

<code>      </code><code>$</code><code>or</code><code>: [    </code>

<code>        </code><code>{ op: </code><code>"query"</code><code>, </code><code>"query.createIndexes"</code><code>: { $exists: </code><code>true</code> <code>} },    </code>

<code>        </code><code>{ op: </code><code>"insert"</code><code>, ns: /\.system\.indexes\b/ }    </code>

<code>      </code><code>]    </code>

<code>    </code><code>}    </code>

本文转自UltraSQL51CTO博客,原文链接: http://blog.51cto.com/ultrasql/1706393,如需转载请自行联系原作者