- Reference >
mongoShell Methods >- Database Methods >
- db.currentOp()
db.currentOp()¶
On this page
Definition¶
-
db.currentOp()¶ Returns: A document that reports in-progress operations for the database instance. The
db.currentOp()method can take no arguments or take thetrueargument, which returns a more verbose output, including idle connections and system operations. The following example uses thetrueargument:db.currentOp()is available only for users with administrative privileges.You can use
db.killOp()in conjunction with theopidfield to terminate a currently running operation. The following JavaScript operations for themongoshell filter the output of specific types of operations:Return all pending write operations:
Return the active write operation:
Return all active read operations:
Warning
Terminate running operations with extreme caution. Only use
db.killOp()to terminate operations initiated by clients and do not terminate internal database operations.
Example¶
The following is an example of db.currentOp() output. If you
specify the true argument, db.currentOp() returns
more verbose output.
Output¶
Changed in version 2.2.
The db.currentOp() returns a document with an array named
inprog. The inprog array contains a document for each
in-progress operation. The fields that appear for a given operation
depend on the kind of operation and its state.
-
currentOp.opid¶ Holds an identifier for the operation. You can pass this value to
db.killOp()in themongoshell to terminate the operation.
-
currentOp.active¶ A boolean value, that is
trueif the operation has started orfalseif the operation is queued and waiting for a lock to run.activemay betrueeven if the operation has yielded to another operation.
-
currentOp.secs_running¶ The duration of the operation in seconds. MongoDB calculates this value by subtracting the current time from the start time of the operation.
If the operation is not running, (i.e. if
activeisfalse), this field may not appear in the output ofdb.currentOp().
-
currentOp.op¶ A string that identifies the type of operation. The possible values are:
insertqueryupdateremovegetmorecommand
-
currentOp.ns¶ The namespace the operation targets. MongoDB forms namespaces using the name of the database and the name of the collection.
-
currentOp.query¶ A document containing the current operation’s query. The document is empty for operations that do not have queries:
getmore,insert, andcommand.
-
currentOp.client¶ The IP address (or hostname) and the ephemeral port of the client connection where the operation originates. If your
inprogarray has operations from many different clients, use this string to relate operations to clients.For some commands, including
findAndModifyanddb.eval(), the client will be0.0.0.0:0, rather than an actual client.
-
currentOp.desc¶ A description of the client. This string includes the
connectionId.
-
currentOp.threadId¶ An identifier for the thread that services the operation and its connection.
-
currentOp.connectionId¶ An identifier for the connection where the operation originated.
-
currentOp.locks¶ New in version 2.2.
The
locksdocument reports on the kinds of locks the operation currently holds. The following kinds of locks are possible:-
currentOp.locks.^¶ ^reports on the use of the global lock for themongodinstance. All operations must hold the global lock for some phases of operation.
-
currentOp.locks.^local¶ ^localreports on the lock for thelocaldatabase. MongoDB uses thelocaldatabase for a number of operations, but the most frequent use of thelocaldatabase is for the oplog used in replication.
-
currentOp.locks.^<database>¶ locks.^<database>reports on the lock state for the database that this operation targets.
locksreplaceslockTypein earlier versions.-
-
currentOp.waitingForLock¶ Returns a boolean value.
waitingForLockistrueif the operation is waiting for a lock andfalseif the operation has the required lock.
-
currentOp.msg¶ The
msgprovides a message that describes the status and progress of the operation. In the case of indexing or mapReduce operations, the field reports the completion percentage.
-
currentOp.progress¶ Reports on the progress of mapReduce or indexing operations. The
progressfields corresponds to the completion percentage in themsgfield. Theprogressspecifies the following information:-
currentOp.progress.done¶ Reports the number completed.
-
currentOp.progress.total¶ Reports the total number.
-
-
currentOp.numYields¶ numYieldsis a counter that reports the number of times the operation has yielded to allow other operations to complete.Typically, operations yield when they need access to data that MongoDB has not yet fully read into memory. This allows other operations that have data in memory to complete quickly while MongoDB reads in data for the yielding operation.
-
currentOp.lockStats¶ New in version 2.2.
The
lockStatsdocument reflects the amount of time the operation has spent both acquiring and holding locks.lockStatsreports data on a per-lock type, with the following possible lock types:Rrepresents the global read lock,Wrepresents the global write lock,rrepresents the database specific read lock, andwrepresents the database specific write lock.
-
currentOp.timeLockedMicros¶ The
timeLockedMicrosdocument reports the amount of time the operation has spent holding a specific lock.For operations that require more than one lock, like those that lock the
localdatabase to update the oplog, then the values in this document can be longer than this value may be longer than the total length of the operation (i.e.secs_running.)-
currentOp.timeLockedMicros.R¶ Reports the amount of time in microseconds the operation has held the global read lock.
-
currentOp.timeLockedMicros.W¶ Reports the amount of time in microseconds the operation has held the global write lock.
-
currentOp.timeLockedMicros.r¶ Reports the amount of time in microseconds the operation has held the database specific read lock.
-
currentOp.timeLockedMicros.w¶ Reports the amount of time in microseconds the operation has held the database specific write lock.
-
-
currentOp.timeAcquiringMicros¶ The
timeAcquiringMicrosdocument reports the amount of time the operation has spent waiting to acquire a specific lock.-
currentOp.timeAcquiringMicros.R¶ Reports the mount of time in microseconds the operation has waited for the global read lock.
-
currentOp.timeAcquiringMicros.W¶ Reports the mount of time in microseconds the operation has waited for the global write lock.
-
currentOp.timeAcquiringMicros.r¶ Reports the mount of time in microseconds the operation has waited for the database specific read lock.
-
currentOp.timeAcquiringMicros.w¶ Reports the mount of time in microseconds the operation has waited for the database specific write lock.
-