On this page
Terminate Running Operations
On this page
Overview
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.
Available Procedures
maxTimeMS
New in version 2.6.
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.
Terminate a Query
From the mongo
shell, 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)
Terminate a Command
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 } )
db.getLastError()
and db.getLastErrorObj()
will return errors for interrupted options:
{ "n" : 0,
"connectionId" : 1,
"err" : "operation exceeded time limit",
"ok" : 1 }
killOp
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.
Related
To return a list of running operations see db.currentOp()
.