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
killCursorscommand as part of the client-side cursor implementation.Note
In general, applications should not use the
killCursorscommand directly.The
killCursorscommand 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 killCursorsstring The name of the collection. cursorsarray 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
}