Navigation

killCursors

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
}
←   getParameter killOp  →