Docs Menu
Docs Home
/ /
Administración

killCursors (comando de base de datos)

killCursors

Elimina el cursor o los cursores especificados para una colección. Los controladores MongoDB utilizan el killCursors comando como parte de la implementación del cursor del lado del cliente.

Advertencia

Normalmente, las aplicaciones no deberían ejecutar el comando killCursors directamente. En su lugar, deberían dejar que el controlador gestione automáticamente el cursor.

El comando killCursors debe ejecutarse contra la base de datos de la colección cuyos cursores desea eliminar.

Para ejecutar killCursors, utilice el db.runCommand( { <command> } ) .

Este comando está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

Nota

Este comando es compatible con todos los clústeres de MongoDB Atlas. Para obtener información sobre el soporte de Atlas para todos los comandos, consulte Comandos no compatibles.

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

El comando tiene la siguiente sintaxis:

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

El comando toma los siguientes campos:

Campo
Tipo
Descripción

killCursors

string

El nombre de la colección.

cursors

arreglo

Los identificadores de los cursores a matar.

comment

any

Opcional. Un comentario proporcionado por el usuario para adjuntar a este comando. Una vez configurado, este comentario aparece junto a los registros de este comando en las siguientes ubicaciones:

Un comentario puede ser de cualquier tipo BSON válido (string, objeto, arreglo, etc.).

Los usuarios siempre pueden eliminar sus propios cursores, independientemente de si tienen el killCursors privilegio. Los cursores se asocian con los usuarios al crearlos.

Si un usuario tiene el privilegio, puede matar los cursores creados por cualquier killAnyCursor usuario.

No se puede especificar el comando como la primera operación en killCursors una transacción.

Además, si ejecutas el comando killCursors dentro de una transacción, el servidor detiene inmediatamente los cursores especificados. No espera la confirmación de la transacción.

Considere la siguiente operación en find la test.restaurants colección:

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

que devuelve lo siguiente:

{
"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
}

Para matar este cursor, utilice el killCursors comando.

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

killCursors devuelve los siguientes detalles de la operación:

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

Volver

getParameter

En esta página