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>, ... ] } )
FieldTypeDescription
killCursorsstringThe name of the collection.
cursorsarrayThe 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
}