Docs Menu

Terminate Running Operations

MongoDB provides two facilitates to terminate running operations: maxTimeMS() and db.killOp(). Use these operations as needed to control the behavior of operations in a MongoDB deployment.

The maxTimeMS() method sets a time limit for an operation. When the operation reaches the specified time limit, MongoDB interrupts the operation at the next interrupt point.

From mongosh, use the following method to set a time limit of 30 milliseconds for this query:

db.location.find( { "town": { "$regex": "(Pine Lumber)",
"$options": 'i' } } ).maxTimeMS(30)

Consider a potentially long running operation using distinct to return each distinct collection field that has a city key:

db.runCommand( { distinct: "collection",
key: "city" } )

You can add the maxTimeMS field to the command document to set a time limit of 45 milliseconds for the operation:

db.runCommand( { distinct: "collection",
key: "city",
maxTimeMS: 45 } )

Operations that reach maxTimeMS will return a MaxTimeMSExpired error.

The db.killOp() method interrupts a running operation at the next interrupt point. db.killOp() identifies the target operation by operation ID.

db.killOp(<opId>)

Warning

Terminate running operations with extreme caution. Only use db.killOp() to terminate operations initiated by clients and do not terminate internal database operations.

The killOp command can be run on a mongos and can kill queries (i.e. read operations) that span shards in a cluster. The killOp command from the mongos does not propagate to the shards when the operation to be killed is a write operation.

For more information on killing operations on a sharded cluster, see:

For information on how to list sharding operations that are active on a mongos, see the localOps parameter in $currentOp.