On this page
killCursors
On this page
New in version 3.2.
Definition
killCursors
-
Kills the specified cursor or cursors for a collection. MongoDB drivers use the
killCursors
command as part of the client-side cursor implementation.Note
In general, applications should not use the
killCursors
command directly.The
killCursors
command must be run against the database of the collection whose cursors you wish to kill.To run killCursors, use the
db.runCommand( { <command> } )
method.The command has the following form:
db.runCommand( { "killCursors": <collection>, "cursors": [ <cursor id1>, ... ] } )
Field Type Description killCursors
string The name of the collection. cursors
array The ids of the cursors to kill.
Required Access
Changed in version 3.6.3.
To successfully execute a killCursors
command, all cursors that you wish to kill must be associated with a currently authenticated user. MongoDB associates cursors with the users that were authenticated when the cursor was created. If the operation is not successful due to permission issues, the command returns an error message.
Alternatively, if a user possesses the killAnyCursor
privilege, that user may kill any cursor regardless of what users the cursor is associated with.
Example
Consider the following find
operation on the test.restaurants
collection:
use test
db.runCommand(
{ find: "restaurants",
filter: { stars: 5 },
projection: { name: 1, rating: 1, address: 1 },
sort: { name: 1 },
batchSize: 5
}
)
which returns the following:
{
"waitedMS" : NumberLong(0),
"cursor" : {
"firstBatch" : [
{
"_id" : ObjectId("57506d63f578028074723dfd"),
"name" : "Cakes and more"
},
{
"_id" : ObjectId("57506d63f578028074723e0b"),
"name" : "Pies and things"
},
{
"_id" : ObjectId("57506d63f578028074723e1d"),
"name" : "Ice Cream Parlour"
},
{
"_id" : ObjectId("57506d63f578028074723e65"),
"name" : "Cream Puffs"
},
{
"_id" : ObjectId("57506d63f578028074723e66"),
"name" : "Cakes and Rolls"
}
],
"id" : NumberLong("18314637080"),
"ns" : "test.restaurants"
},
"ok" : 1
}
To kill this cursor, use the killCursors
command.
use test
db.runCommand( { killCursors: "restaurants", cursors: [ NumberLong("18314637080") ] } )
killCursors
returns the following operation details:
{
"cursorsKilled" : [
NumberLong("18314637080")
],
"cursorsNotFound" : [ ],
"cursorsAlive" : [ ],
"cursorsUnknown" : [ ],
"ok" : 1
}