On this page
db.currentOp()
On this page
Definition
db.
currentOp
( )-
Returns a document that contains information on in-progress operations for the database instance. The
db.currentOp()
method wraps the database commandcurrentOp
.
Syntax
db.currentOp()
has the following form:
db.currentOp(<operations>)
db.currentOp()
can take the following optional argument:
Parameter | Type | Description |
---|---|---|
operations | boolean or document | Optional. Specifies the operations to report on. Can pass either a boolean or a document:
|
Behavior
db.currentOp()
can accept a filter document or a boolean parameter.
If you pass a filter document to db.currentOp()
, the output returns information only for the current operations that match the filter. The filter document can contain:
Field | Description |
---|---|
"$ownOps" |
Boolean. If set to On New in version 3.2.9. |
"$all" |
Boolean. If set to If the document includes |
<filter> | Specify filter conditions on the Output Fields. See Examples. If the document includes |
Passing in true
to db.currentOp()
is equivalent to passing in a document of { "$all": true }
. The following operations are equivalent:
db.currentOp(true)
db.currentOp( { "$all": true } )
db.currentOp
and the database profiler report the same basic diagnostic information for all CRUD operations, including the following:
aggregate
count
delete
distinct
find
(OP_QUERY andcommand
)findAndModify
geoNear
getMore
(OP_GET_MORE andcommand
)group
insert
mapReduce
update
These operations are also included in the logging of slow queries (see slowOpThresholdMs
for more information about slow query logging).
Access Control
On systems running with authorization
, the user must have access that includes the inprog
privilege action.
Starting in 3.2.9, users can run db.currentOp( { "$ownOps": true } )
on mongod
instances to view their own operations even without the inprog
privilege action.
Examples
The following examples use the db.currentOp()
method with various query documents to filter the output.
Write Operations Waiting for a Lock
Changed in version 3.6.
The following example returns information on all write operations that are waiting for a lock:
db.currentOp(
{
"waitingForLock" : true,
$or: [
{ "op" : { "$in" : [ "insert", "update", "remove" ] } },
{ "command.findandmodify": { $exists: true } }
]
}
)
Active Operations with no Yields
The following example returns information on all active running operations that have never yielded:
db.currentOp(
{
"active" : true,
"numYields" : 0,
"waitingForLock" : false
}
)
Active Operations on a Specific Database
The following example returns information on all active operations for database db1
that have been running longer than 3 seconds:
db.currentOp(
{
"active" : true,
"secs_running" : { "$gt" : 3 },
"ns" : /^db1\./
}
)
Output Example
The following is a prototype of db.currentOp()
output.
- Standalone
- Replica Set (Primary)
- Sharded Cluster (mongos)
The following is a prototype of the currentOp
output when run on a standalone:
{
"inprog": [
{
"host" : <string>,
"desc" : <string>,
"connectionId" : <number>,
"client" : <string>,
"appName" : <string>,
"clientMetadata" : <document>,
"active" : <boolean>,
"currentOpTime" : <string>,
"opid" : <number>,
"secs_running" : <NumberLong()>,
"microsecs_running" : <number>,
"op" : <string>,
"ns" : <string>,
"command" : <document>,
"originatingCommand" : <document>,
"planSummary": <string>,
"msg": <string>,
"progress" : {
"done" : <number>,
"total" : <number>
},
"killPending" : <boolean>,
"numYields" : <number>,
"locks" : {
"Global" : <string>,
"MMAPV1Journal" : <string>,
"Database" : <string>,
"Collection" : <string>,
"Metadata" : <string>,
"oplog" : <string>
},
"waitingForLock" : <boolean>,
"lockStats" : {
"Global": {
"acquireCount": {
"r": <NumberLong>,
"w": <NumberLong>,
"R": <NumberLong>,
"W": <NumberLong>
},
"acquireWaitCount": {
"r": <NumberLong>,
"w": <NumberLong>,
"R": <NumberLong>,
"W": <NumberLong>
},
"timeAcquiringMicros" : {
"r" : NumberLong(0),
"w" : NumberLong(0),
"R" : NumberLong(0),
"W" : NumberLong(0)
},
"deadlockCount" : {
"r" : NumberLong(0),
"w" : NumberLong(0),
"R" : NumberLong(0),
"W" : NumberLong(0)
}
},
"MMAPV1Journal": {
...
},
"Database" :