killCursors
On this page本页内容
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.NoteIn 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.
Syntax
The command has the following syntax:
db.runCommand(
{
killCursors: <collection>,
cursors: [ <cursor id1>, ... ], comment: <any>
}
)
Command Fields
The command takes the following fields:
Field | Type | Description |
---|---|---|
killCursors | string | The name of the collection. |
cursors | array | The ids of the cursors to kill. |
comment | any | Optional. A user-provided comment to attach to this command. Once set, this comment appears alongside records of this command in the following locations:
New in version 4.4.
|
Required Access
Kill Own Cursors
- In MongoDB 4.2 and later, users can always kill their own cursors, regardless of whether the users have the privilege to
killCursors
. Cursors are associated with the users at the time of cursor creation. - In MongoDB 3.6.3 through MongoDB 4.0.x, users require
killCursors
privilege to kill their own cursors. Cursors are associated with the users at the time of cursor creation.
Kill Any Cursor
If a user possesses the killAnyCursor
privilege, that user may kill any cursor, even cursors created by other users.
killCursors
and Transactions
Starting in MongoDB 4.2, you cannot specify killCursors
as the first operation in a transaction.
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
}