currentOp
Definition
currentOp
- Returns a document that contains information on in-progressoperations for the
mongod
instance.
currentOp
has the following form:
- { currentOp: 1 }
The mongo
shell provides the db.currentOp()
wrapper for the currentOp
command.
Note
Because currentOp
command anddb.currentOp()
helper returns the results in a singledocument, the total size of the currentOp
result setis subject to the maximum 16MB BSON size limit for documents.
Starting in version 3.6, MongoDB provides $currentOp
aggregation stage. The $currentOp
stage returns acursor over a stream of documents, each of which reports a singleoperation. Each operation document is subject to the 16MB BSONlimit, but unlike the currentOp
command, there is nolimit on the overall size of the result set.
For this reason, the $currentOp
aggregation stage ispreferred over the currentOp
command and itsmongo
shell helper db.currentOp()
.
Behavior
currentOp
must run against the admin
database, andit can accept several optional fields.
Field | Description |
---|---|
"$ownOps" | Boolean. If set to true , returns information on the current user’soperations only.On mongod instances, users are always authorized to runcurrentOp with "$ownOps": true to view their ownoperations. See access control.New in version 3.2.9. |
"$all" | Boolean. If set to true , returns information on all operations,including operations on idle connections and system operations."$all": true overrides any output field filters. |
<filter> | Specify filter conditions on the Output Fields.See Examples. |
currentOp
and thedatabase profiler report the samebasic diagnostic information for all CRUD operations, including thefollowing:
aggregate
count
delete
distinct
find
(OP_QUERY andcommand
)findAndModify
getMore
(OP_GET_MORE andcommand
)insert
mapReduce
update
These operations are also included in the logging ofslow queries (see slowOpThresholdMs
formore information about slow query logging).
Access Control
On systems running with authorization
, the usermust have access that includes the inprog
privilegeaction.
Changed in version 3.2.9: On mongod
instances, users can use $ownOps
to view their own operations without theinprog
privilege action.
- db.adminCommand( { currentOp: 1, "$ownOps": 1 } )
See also
Create a Role to Manage Current Operations
Examples
The following examples use the currentOp
command withvarious query documents to filter the output.
Display All Current Operations
- db.adminCommand(
- {
- currentOp: true,
- "$all": true
- }
- )
Write Operations Waiting for a Lock
The following example returns information on all write operations thatare waiting for a lock:
- db.adminCommand(
- {
- currentOp: true,
- "waitingForLock" : true,
- $or: [
- { "op" : { "$in" : [ "insert", "update", "remove" ] } },
- { "query.findandmodify": { $exists: true } }
- ]
- }
- )
Active Operations with no Yields
The following example returns information on all active runningoperations that have never yielded:
- db.adminCommand(
- {
- currentOp: true,
- "active" : true,
- "numYields" : 0,
- "waitingForLock" : false
- }
- )
Active Operations on a Specific Database
The following example returns information on all active operations fordatabase db1
that have been running longer than 3 seconds:
- db.adminCommand(
- {
- currentOp: true,
- "active" : true,
- "secs_running" : { "$gt" : 3 },
- "ns" : /^db1\./
- }
- )
Active Indexing Operations
The following example returns information on index creation operations:
- db.adminCommand(
- {
- currentOp: true,
- $or: [
- { op: "command", "query.createIndexes": { $exists: true } },
- { op: "none", ns: /\.system\.indexes\b/ }
- ]
- }
- )
Output Example
- Standalone
- Replica Set (Primary)
- Sharded Cluster (mongos)
The following is a prototype of the currentOp
output when run on a standalone:
Changed in version 4.2.
- {
- "inprog": [
- {
- "type" : <string>,
- "host" : <string>,
- "desc" : <string>,
- "connectionId" : <number>,
- "client" : <string>,
- "appName" : <string>,
- "clientMetadata" : <document>,
- "active" : <boolean>,
- "currentOpTime" : <string>,
- "effectiveUsers" : [
- {
- "user" : <string>,
- "db" : <string>
- }
- ],
- "opid" : <number>,
- "lsid" : {
- "id" : <UUID>,
- "uid" : <BinData>
- },
- "secs_running" : <NumberLong()>,
- "microsecs_running" : <number>,
- "op" : <string>,
- "ns" : <string>,
- "command" : <document>,
- "planSummary": <string>,
- "cursor" : { // only for getMore operations
- "cursorId" : <NumberLong()>,
- "createdDate" : <ISODate()>,
- "lastAccessDate" : <ISODate()>,
- "nDocsReturned" : <NumberLong()>,
- "nBatchesReturned" : <NumberLong()>,
- "noCursorTimeout" : <boolean>,
- "tailable" : <boolean>,
- "awaitData" : <boolean>,
- "originatingCommand" : <document>,
- "planSummary" : <string>,
- "operationUsingCursorId" : <NumberLong()>
- },
- "msg": <string>,
- "progress" : {
- "done" : <number>,
- "total" : <number>
- },
- "killPending" : <boolean>,
- "numYields" : <number>,
- "locks" : {
- "ParallelBatchWriterMode" : <string>,
- "ReplicationStateTransition" : <string>,
- "Global" : <string>,
- "Database" : <string>,
- "Collection" : <string>,
- "Metadata" : <string>,
- "oplog" : <string>
- },
- "waitingForLock" : <boolean>,
- "lockStats" : {
- "ParallelBatchWriterMode" : {
- "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)
- }
- },
- "ReplicationStateTransition" : {
- ...
- },
- "Global": {
- ...
- },
- "Database" : {
- ...
- },
- ...
- }
- },
- ...
- ],
- "fsyncLock": <boolean>,
- "info": <string>,
- "ok": <num>
- }
The following is a prototype of the currentOp
output when run on a primary of a replica set:
Changed in version 4.2.
- {
- "inprog": [
- {
- "type" : <string>,
- "host" : <string>,
- "desc" : <string>,
- "connectionId" : <number>,
- "client" : <string>,
- "appName" : <string>,
- "clientMetadata" : <document>,
- "lsid" : {
- "id" : <UUID>,
- "uid" : <BinData>
- },
- "transaction" : {
- "parameters" : {
- "txnNumber" : <NumberLong()>,
- "autocommit" : <boolean>,
- "readConcern" : {
- "level" : <string>
- }
- },
- "readTimestamp" : <Timestamp>,
- "startWallClockTime" : <string>,
- "timeOpenMicros" : <NumberLong()>,
- "timeActiveMicros" : <NumberLong()>,
- "timeInactiveMicros" : <NumberLong()>,
- "expiryTime" : <string>,
- },
- "active" : <boolean>,
- "currentOpTime" : <string>,
- "effectiveUsers" : [
- {
- "user" : <string>,
- "db" : <string>
- }
- ],
- "opid" : <number>,
- "secs_running" : <NumberLong()>,
- "microsecs_running" : <number>,
- "op" : <string>,
- "ns" : <string>,
- "command" : <document>,
- "originatingCommand" : <document>,
- "planSummary": <string>,
- "prepareReadConflicts" : <NumberLong()>,
- "writeConflicts" : <NumberLong()>,
- "cursor" : { // only for getMore operations
- "cursorId" : <NumberLong()>,
- "createdDate" : <ISODate()>,
- "lastAccessDate" : <ISODate()>,
- "nDocsReturned" : <NumberLong()>,
- "nBatchesReturned" : <NumberLong()>,
- "noCursorTimeout" : <boolean>,
- "tailable" : <boolean>,
- "awaitData" : <boolean>,
- "originatingCommand" : <document>,
- "planSummary" : <string>,
- "operationUsingCursorId" : <NumberLong()>
- },
- "msg": <string>,
- "progress" : {
- "done" : <number>,
- "total" : <number>
- },
- "killPending" : <boolean>,
- "numYields" : <number>,
- "locks" : {
- "ParallelBatchWriterMode" : <string>,
- "ReplicationStateTransition" : <string>,
- "Global" : <string>,
- "Database" : <string>,
- "Collection" : <string>,
- "Metadata" : <string>,
- "oplog" : <string>
- },
- "waitingForLock" : <boolean>,
- "lockStats" : {
- "ParallelBatchWriterMode" : {
- "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)
- }
- },
- "ReplicationStateTransition" : {
- ...
- },
- "Global" : {
- ...
- },
- "Database" : {
- ...
- },
- ...
- }
- },
- ...
- ],
- "fsyncLock": <boolean>,
- "info": <string>,
- "ok": <num>,
- "operationTime": <timestamp>,
- "$clusterTime": <document>
- }
The following is an example of the currentOp
output when run on a mongos
of a shardedcluster (Fields may vary depending on the operation beingreported):
Changed in version 4.2.
- {
- "inprog": [
- {
- "shard": <string>,
- "type" : <string>,
- "host" : <string>,
- "desc" : <string>,
- "connectionId" : <number>,
- "client_s" : <string>,
- "appName" : <string>,
- "clientMetadata" : <document>,
- "lsid" : {
- "id" : <UUID>,
- "uid" : <BinData>
- },
- "transaction" : {
- "parameters" : {
- "txnNumber" : <NumberLong()>,
- "autocommit" : <boolean>,
- "readConcern" : {
- "level" : <string>
- }
- },
- "readTimestamp" : <Timestamp>,
- "startWallClockTime" : <string>,
- "timeOpenMicros" : <NumberLong()>,
- "timeActiveMicros" : <NumberLong()>,
- "timeInactiveMicros" : <NumberLong()>,
- "expiryTime" : <string>,
- },
- "active" : <boolean>,
- "currentOpTime" : <string>,
- "effectiveUsers" : [
- {
- "user" : <string>,
- "db" : <string>
- }
- ],
- "runBy" : [
- {
- "user" : <string>,
- "db" : <string>
- }
- ],
- "twoPhaseCommitCoordinator" : { // Starting in 4.2.1
- "lsid" : {
- "id" : <UUID>,
- "uid" : <BinData>
- },
- "txnNumber" : <NumberLong>,
- "numParticipants" : <NumberLong>,
- "state" : <string>,
- "commitStartTime" : <ISODate>,
- "hasRecoveredFromFailover" : <boolean>,
- "stepDurations" : <document>,
- "decision" : <document>,
- "deadline" : <ISODate>
- }
- "opid" : <string>,
- "secs_running" : <NumberLong()>,
- "microsecs_running" : <number>,
- "op" : <string>,
- "ns" : <string>,
- "command" : <document>,
- "planSummary": <string>,
- "prepareReadConflicts" : <NumberLong()>,
- "writeConflicts" : <NumberLong()>,
- "cursor" : { // only for getMore operations
- "cursorId" : <NumberLong()>,
- "createdDate" : <ISODate()>,
- "lastAccessDate" : <ISODate()>,
- "nDocsReturned" : <NumberLong()>,
- "nBatchesReturned" : <NumberLong()>,
- "noCursorTimeout" : <boolean>,
- "tailable" : <boolean>,
- "awaitData" : <boolean>,
- "originatingCommand" : <document>,
- "planSummary" : <string>,
- "operationUsingCursorId" : <NumberLong()>
- },
- "msg": <string>,
- "progress" : {
- "done" : <number>,
- "total" : <number>
- },
- "killPending" : <boolean>,
- "numYields" : <number>,
- "locks" : {
- "ParallelBatchWriterMode" : <string>,
- "ReplicationStateTransition" : <string>,
- "Global" : <string>,
- "Database" : <string>,
- "Collection" : <string>,
- "Metadata" : <string>,
- "oplog" : <string>
- },
- "waitingForLock" : <boolean>,
- "lockStats" : {
- "ParallelBatchWriterMode": {
- "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)
- }
- },
- "ReplicationStateTransition" : {
- ...
- },
- "Global" : {
- ...
- },
- "Database" : {
- ...
- },
- ...
- }
- },
- ...
- ],
- "ok": <num>,
- "operationTime": <timestamp>,
- "$clusterTime": <document>
- }
Output Fields
New in version 4.2.
The type of operation. Values are either:
op
idleSession
idleCursor
If thecurrentOp.type
isop
,currentOp.op
provides details on the specific operation.
currentOp.
desc
- A description of the client. This string includes the
connectionId
.
For multi-document transactions, client
storesinformation about the most recent client to run an operation insidethe transaction.
For multi-document transactions, client
storesinformation about the most recent client to run an operation insidethe transaction.
New in version 3.6.
currentOp.
effectiveUsers
- An array that contains a document for each user associated with theoperation. Each user document contains the
user
name and theauthenticationdb
.
See also
New in version 4.2.
currentOp.
runBy
- An array that contains a document for each user who is impersonatingthe
effectiveUser(s)
for theoperation. The runBy document contains theuser
nameand the authenticationdb
. In general, the runBy user isthe__system
user; e.g.
- "runBy" : [
- {
- "user" : "__system",
- "db" : "local"
- }
- ]
Only available on sharded clusters
New in version 4.2.
Only present if the operation is associated with asession.
New in version 3.6.
currentOp.
transaction
- A document that contains multi-document transaction information.
Only present if the operation is part of a multi-document transaction.
New in version 4.0.
Only present if the operation is part of a multi-documenttransaction.
New in version 4.0.
- <code>currentOp.transaction.parameters.</code><code>txnNumber</code>[]($da8d189bb5cc60f2.md#currentOp.transaction.parameters.txnNumber)
-
The transaction number.
Only present if the operation is part of a multi-document transaction.
New in version 4.0.
- <code>currentOp.transaction.parameters.</code><code>autocommit</code>[]($da8d189bb5cc60f2.md#currentOp.transaction.parameters.autocommit)
-
A boolean flag that indicates if autocommit is on for thetransaction.
Only present if the operation is part of a multi-document transaction.
New in version 4.0.2.
- <code>currentOp.transaction.parameters.</code><code>readConcern</code>[]($da8d189bb5cc60f2.md#currentOp.transaction.parameters.readConcern)
-
The read concern for thetransaction.
Multi-document transactions support read concern"snapshot"
, "local"
, and"majority"
.
Only present if the operation is part of a multi-document transaction.
New in version 4.0.2.
- <code>currentOp.transaction.</code><code>readTimestamp</code>[]($da8d189bb5cc60f2.md#currentOp.transaction.readTimestamp)
-
The timestamp of the snapshot being read by the operations inthe transaction.
Only present if the operation is part of a multi-document transaction.
New in version 4.0.2.
- <code>currentOp.transaction.</code><code>startWallClockTime</code>[]($da8d189bb5cc60f2.md#currentOp.transaction.startWallClockTime)
-
The date and time (with time zone) of the transaction start.
Only present if the operation is part of a multi-document transaction.
New in version 4.0.2.
- <code>currentOp.transaction.</code><code>timeOpenMicros</code>[]($da8d189bb5cc60f2.md#currentOp.transaction.timeOpenMicros)
-
The duration of the transaction in microseconds.
The timeActiveMicros
value added to thetimeInactiveMicros
should equal thetimeOpenMicros
.
Only present if the operation is part of a multi-document transaction.
New in version 4.0.2.
- <code>currentOp.transaction.</code><code>timeActiveMicros</code>[]($da8d189bb5cc60f2.md#currentOp.transaction.timeActiveMicros)
-
The total amount of time that the transaction has been active;i.e. when the transaction had operations running.
ThetimeActiveMicros
value added to thetimeInactiveMicros
should equal thetimeOpenMicros
.
Only present if the operation is part of a multi-document transaction.
New in version 4.0.2.
- <code>currentOp.transaction.</code><code>timeInactiveMicros</code>[]($da8d189bb5cc60f2.md#currentOp.transaction.timeInactiveMicros)
-
The total amount of time that the transaction has beeninactive; i.e. when the transaction had no operations running.
ThetimeInactiveMicros
value added to thetimeActiveMicros
should equal thetimeOpenMicros
.
Only present if the operation is part of a multi-document transaction.
- <code>currentOp.transaction.</code><code>expiryTime</code>[]($da8d189bb5cc60f2.md#currentOp.transaction.expiryTime)
-
The date and time (with time zone) when the transaction willtime out and abort.
The currentOp.transaction.expiryTime
equals thecurrentOp.transaction.startWallClockTime
+ thetransactionLifetimeLimitSeconds
.
For more information, seee Runtime Limit fortransactions.
Only present if the operation is part of a multi-document transaction.
New in version 4.0.2.
currentOp.
twoPhaseCommitCoordinator
Information on either:
- The commit coordination metrics for a transaction whosewrite operations span multiple shards.
Commit coordination is handled by a shard, andcurrentOp
(run either on a mongos
or ashard member) returns a shard’s coordination information only forthose transactions currently being coordinated by that shard.
To filter for just the commit coordination metrics:
- db.currentOp( { desc: "transaction coordinator" })
- A specific commit coordination operation (i.e.
currentOp.type
isop
andcurrentOp.desc
is"TransactionCoordinator"
) spawned by the transactioncoordinator.
New in version 4.2.1.
The combination of thelsid
andtxnNumber
identifiesthe transaction.
Available for both the commit coordination metrics and for specificcoordination operation.
New in version 4.2.1.
currentOp.twoPhaseCommitCoordinator.
txnNumber
- The transaction number for the multi-shard transaction.
The combination of thetxnNumber
andlsid
identifies thetransaction.
Available for both the commit coordination metrics and for specificcoordination operation.
New in version 4.2.1.
currentOp.twoPhaseCommitCoordinator.
action
The specific commit coordination operation spawned by thetransaction coordinator:
"sendingPrepare"
"sendingCommit"
"sendingAbort"
"writingParticipantList"
"writingDecision"
"deletingCoordinatorDoc"
Only available for specific coordination operation.
- The start date and time of the
action
.
Only available for specific coordination operation.
New in version 4.2.1.
Only available for the commit coordination metrics.
New in version 4.2.1.
Step/stageDescriptioninactive
Not actively part of a commit.writingParticipantList
Writing a local record of the list of shards that are partof this multi-shard transaction.waitingForVotes
Waiting for the participants to respond with vote to commit or abort.writingDecision
Writing a local record of the coordinator’s decision to commit orabort based on votes.waitingForDecisionAck
Waiting for participants to acknowledge the coordinator’sdecision to commit or abort.deletingCoordinatorDoc
Deleting the local record of commit decision.
Only available for the commit coordination metrics.
See alsocurrentOp.twoPhaseCommitCoordinator.stepDurations
.
New in version 4.2.1.
Only available for the commit coordination metrics.
New in version 4.2.1.
currentOp.twoPhaseCommitCoordinator.
hasRecoveredFromFailover
- A boolean that indicates whether the commit coordination wasrestarted due to failover on the shard that is coordinating thecommit.
IfhasRecoveredFromFailover
is true, then the times specified incurrentOp.twoPhaseCommitCoordinator.stepDurations
may notbe accurate for all steps.
Only available for the commit coordination metrics.
New in version 4.2.1.
currentOp.twoPhaseCommitCoordinator.
stepDurations
- A document that contains the duration, in microseconds, of thecommit coordination
steps/state
completed or inprogress:
- "stepDurations" : {
- "writingParticipantListMicros" : NumberLong(17801),
- "totalCommitDurationMicros" : NumberLong(42488463),
- "waitingForVotesMicros" : NumberLong(30378502),
- "writingDecisionMicros" : NumberLong(15015),
- "waitingForDecisionAcksMicros" : NumberLong(12077145),
- "deletingCoordinatorDocMicros" : NumberLong(6009)
- },
IfcurrentOp.twoPhaseCommitCoordinator.hasRecoveredFromFailover
is true, then the times specified instepDurations
may notbe accurate for all steps.
For a coordinator in an inactive
state, the document is empty:
- "stepDurations" : {
- }
Only available for the commit coordination metrics.
See currentOp.twoPhaseCommitCoordinator.state
.
New in version 4.2.1.
currentOp.twoPhaseCommitCoordinator.
decision
A document that contains the commit/abort decision, for example:
- For a commmit decision:
- "decision" : {
- "decision" : "commit",
- "commitTimestamp" : Timestamp(1572034669, 3)
- }
-
For an abort decision:
- "decision" : {
- "decision" : "abort",
- "abortStatus" : {
- "code" : 282,
- "codeName" : "TransactionCoordinatorReachedAbortDecision",
- "errmsg" : "Transaction exceeded deadline"
- }
- }
Only available for the commit coordination metrics.
New in version 4.2.1.
Only available for the commit coordination metrics.
New in version 4.2.1.
currentOp.
opid
- The identifier for the operation. You can pass this value to
db.killOp()
in themongo
shell to terminate theoperation.
Warning
Terminate running operations with extreme caution. Only usedb.killOp()
to terminate operations initiated by clientsand do not terminate internal database operations.
currentOp.
active
- A boolean value specifying whether the operation has started. Valueis
true
if the operation has started orfalse
if theoperation is idle, such as an idle connection or an internal threadthat is currently idle. An operation can be active even if theoperation has yielded to another operation.
Changed in version 3.0: For some inactive background threads, such as an inactivesignalProcessingThread
, MongoDB suppresses various emptyfields.
currentOp.
secs_running
- The duration of the operation in seconds. MongoDB calculates thisvalue by subtracting the current time from the start time of theoperation.
Only appears if the operation is running; i.e. ifactive
is true
.
currentOp.
microsecs_running
- The duration of the operation in microseconds. MongoDB calculates thisvalue by subtracting the current time from the start time of theoperation.
Only appears if the operation is running; i.e. ifactive
is true
.
currentOp.
op
- A string that identifies the specific operation type. Only presentif
currentOp.type
isop
.
The possible values are:
"none"
"update"
"insert"
"query"
"command"
"getmore"
"remove"
"killcursors"
"query"
operations include read operations.
"command"
operations include mostcommands such as thecreateIndexes
and findandmodify
.
Changed in version 3.0: Write operations that use the insert
,update
, and delete
commandsrespectively display "insert"
, "update"
, and "remove"
for op
. Previous versions include these writecommands under "query"
operations.
Changed in version 3.2: Most commands includingcreateIndexes
and findandmodify
display"command"
for op
. Previous versions ofMongoDB included these commands under "query"
operations.
currentOp.
ns
- The namespace the operation targets. A namespace consists ofthe database name and the collection nameconcatenated with a dot (
.
); that is,"<database>.<collection>"
.
Changed in version 3.6.
A document containing the full command object associated with thisoperation.
For example, the following output contains the command object for afind
operation on a collection named items
in adatabase named test
:
- "command" : {
- "find" : "items",
- "filter" : {
- "sku" : 1403978
- },
- ...
- "$db" : "test"
- }
The following example output contains the command object for agetMore
operation generated bya command with cursor id 19234103609
on a collection nameditems
in a database named test
:
- "command" : {
- "getMore" : NumberLong("19234103609"),
- "collection" : "items",
- "batchSize" : 10,
- ...
- "$db" : "test"
- },
If the command document exceeds 1 kilobyte, thedocument has the following form:
- "command" : {
- "$truncated": <string>,
- "comment": <string>
- }
The $truncated
field contains a string summary of the document excludingthe document’s comment
field if present. If the summary still exceeds1 kilobyte then it is further truncated, denoted by an ellipsis(…) at the end of the string.
The comment
field is present if a comment was passed to the operation.
currentOp.
planSummary
- Specifies whether the cursor uses a collection scan(
COLLSCAN
) or an index scan (IXSCAN { … }
).
The IXSCAN
also includes the specification document of the indexused.
currentOp.
prepareReadConflicts
- The number of times the current operation had to wait for aprepared transaction with a write to commit or abort.
While waiting, the current operation continues to hold any necessarylocks and storage engine resources.
New in version 4.2.
currentOp.
writeConflicts
- The number of times the current operation conflicted withanother write operation on the same document.
New in version 4.2.
New in version 4.2.
A document that contains the cursor information for getmore
operations; i.e. where op
is getmore
.
If reporting on a getmore
operation before the getmore
hasaccessed its cursor information, the cursor
fieldis not available.
New in version 4.2.
The id of the cursor.
New in version 4.2.
The date and time when the cursor was created.
New in version 4.2.
The date and time when the cursor was last used.
New in version 4.2.
The cumulative number of documents returned by the cursor.
New in version 4.2.
The curmulative number of batches returned by the cursor.
New in version 4.2.
The flag that indicates that the cursor will not timeout when idle;i.e. if the cursor has the noTimeout
option set.
- If true, the cursor does not time out when idle.
- If false, the cursor will time out when idle.
See also
New in version 4.2.
The flag that indicates if the cursor is a tailable cursor for a capped collection. Tailable cursorsremain open after the client exhausts the results in the initialcursor.
See also
- [<code>find</code>]($b880d3668448c2e5.md#dbcmd.find)
- [<code>cursor.tailable()</code>]($d047cc6a3717a527.md#cursor.tailable)
- [<code>cursor.addOption()</code>]($fb45b4e29bd8bcf4.md#cursor.addOption)
New in version 4.2.
The flag that indicates whether the tailable cursor should temporarily block agetMore
command on the cursor while waiting for newdata rather than returning no data.
For non-tailable cursors, the value is always false.
See also
- [<code>find</code>]($b880d3668448c2e5.md#dbcmd.find)
- [<code>cursor.tailable()</code>]($d047cc6a3717a527.md#cursor.tailable)
- [<code>cursor.addOption()</code>]($fb45b4e29bd8bcf4.md#cursor.addOption)
New in version 4.2.
The originatingCommand
field contains the full command object(e.g. find
or aggregate
) which originally created thecursor.
Note
Starting in version 4.2, MongoDB now returnsoriginatingCommand
field as a nested field in the newcursor
field. In previous versions, theoriginatingCommand
was a top-level field for the associated"getmore"
document.
New in version 4.2.
Specifies whether the cursor uses a collection scan(COLLSCAN
) or an index scan (IXSCAN { … }
).
The IXSCAN
also includes the specification document of the indexused.
New in version 4.2.
The opid
of the operation using the cursor.
Only present if the cursor is not idle.
currentOp.
client
- The IP address (or hostname) and the ephemeral port of the clientconnection where the operation originates. If your
inprog
array has operations from many different clients, use this stringto relate operations to clients.
New in version 3.4.
The identifier of the client application which ran the operation. Usethe appName
connection string option to set a custom valuefor the appName
field.
Changed in version 3.0.
The locks
document reports the type and mode oflocks the operation currently holds. The possible lock types are asfollows:
Lock TypeDescriptionParallelBatchWriterMode
Represents a lock for parallel batch writer mode.
In earlier versions, PBWM information was reported as part ofthe Global
lock information.
New in version 4.2.
ReplicationStateTransition
Represents lock taken for replica set member state transitions.
New in version 4.2.
Global
Represents global lock.Database
Represents database lock.Collection
Represents collection lock.Mutex
Represents mutex.Metadata
Represents metadata lock.oplog
Represents lock on the oplog.
The possible modes are as follows:
Lock ModeDescriptionR
Represents Shared (S) lock.W
Represents Exclusive (X) lock.r
Represents Intent Shared (IS) lock.w
Represents Intent Exclusive (IX) lock.
currentOp.
waitingForLock
- Returns a boolean value.
waitingForLock
istrue
if theoperation is waiting for a lock andfalse
if the operation hasthe required lock.
currentOp.
msg
- The
msg
provides a message that describes the status andprogress of the operation. In the case of indexing or mapReduceoperations, the field reports the completion percentage.
currentOp.
progress
Reports on the progress of mapReduce or indexing operations. The
progress
fields corresponds to the completion percentage inthemsg
field. Theprogress
specifies the followinginformation:
currentOp.
killPending
- Returns
true
if the operation is currently flagged fortermination. When the operation encounters its next safe termination point, theoperation will terminate.
currentOp.
numYields
numYields
is a counter that reports the number of times theoperation has yielded to allow other operations to complete.
Typically, operations yield when they need access to data thatMongoDB has not yet fully read into memory. This allowsother operations that have data in memory to complete quicklywhile MongoDB reads in data for the yielding operation.
currentOp.
fsyncLock
- Specifies if database is currently locked for
fsyncwrite/snapshot
.
Only appears if locked; i.e. if fsyncLock
istrue
.
currentOp.
info
- Information regarding how to unlock database from
db.fsyncLock()
. Only appears iffsyncLock
istrue
.
currentOp.
lockStats
For each lock type and mode (see
currentOp.locks
fordescriptions of lock types and modes), returns the followinginformation:currentOp.lockStats.
acquireCount
Number of times the operation acquired the lock in the specifiedmode.
Number of times the operation had to wait for the
acquireCount
lock acquisitionsbecause the locks were held in a conflicting mode.acquireWaitCount
is less than orequal toacquireCount
.- Cumulative time in microseconds that the operation had to wait toacquire the locks.
timeAcquiringMicros
divided byacquireWaitCount
gives anapproximate average wait time for the particular lock mode.
currentOp.lockStats.
deadlockCount
- Number of times the operation encountered deadlocks while waitingfor lock acquisitions.
currentOp.
waitingForFlowControl
- A boolean that indicates if the operation is in the process of waiting forflow control.
New in version 4.2.
New in version 4.2.
New in version 4.2.
currentOp.flowControlStats.
acquireWaitCount
- The number of times this operation waited to aqcuire a ticket.
New in version 4.2.
currentOp.flowControlStats.
timeAcquiringMicros
- The total time this operation has waited to acquire a ticket.
New in version 4.2.