Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

killCursors (comando de banco de dados)

killCursors

Kills the specified cursor or cursors for a collection. MongoDB drivers use the killCursors command as part of the client-side cursor implementation.

Aviso

Os aplicativos normalmente não devem executar o comando killCursors diretamente. Em vez disso, deixe o driver lidar automaticamente com o gerenciamento do cursor.

O comando killCursors deve ser executado no banco de dados da collection cujos cursores você deseja eliminar.

Para executar o killCursors, use o método db.runCommand( { <command> } ) .

Esse comando está disponível em implantações hospedadas nos seguintes ambientes:

  • MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud

Observação

This command is supported in all MongoDB Atlas clusters. For information on Atlas support for all commands, see Unsupported Commands.

  • MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB

  • MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB

O comando tem a seguinte sintaxe:

db.runCommand(
{
killCursors: <collection>,
cursors: [ <cursor id1>, ... ], comment: <any>
}
)

O comando utiliza os seguintes campos:

Campo
Tipo
Descrição

killCursors

string

O nome da collection.

cursors

array

As ID do cursor para matar.

comment

any

Opcional. Um comentário fornecido pelo usuário para anexar a este comando. Depois de definido, esse comentário aparece junto com os registros desse comando nos seguintes locais:

Um comentário pode ser qualquer tipo BSON válido (string, inteiro, objeto, array etc).

Os usuários sempre podem eliminar seus próprios cursores, independentemente de terem o privilégio killCursors . Os cursores estão associados aos usuários no momento da criação do cursor.

Se um usuário tiver o privilégio , ele poderá matar cursores criados por qualquer killAnyCursor usuário.

You cannot specify the killCursors command as the first operation in a transaction.

Além disso, se você executar o comando killCursors em uma transação, o servidor interromperá imediatamente os cursores especificados. Não espera que a transação seja confirmada.

Considere a seguinte operação find na collection test.restaurants :

use test
db.runCommand(
{ find: "restaurants",
filter: { stars: 5 },
projection: { name: 1, rating: 1, address: 1 },
sort: { name: 1 },
batchSize: 5
}
)

que retorna o seguinte:

{
"waitedMS" : Long(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" : Long("18314637080"),
"ns" : "test.restaurants"
},
"ok" : 1
}

To kill this cursor, use the killCursors command.

use test
db.runCommand( { killCursors: "restaurants", cursors: [ Long("18314637080") ] } )

killCursors retorna os seguintes detalhes da operação:

{
"cursorsKilled" : [
Long("18314637080")
],
"cursorsNotFound" : [ ],
"cursorsAlive" : [ ],
"cursorsUnknown" : [ ],
"ok" : 1
}