Docs Menu
Docs Home
/ /

Determinación del estado de las queries contra instancias federadas de bases de datos

Puede determinar el estado de una consulta en ejecución utilizando $currentOp (agregación). Para ejecutar $currentOp, utilice el ayudante db.aggregate.

Nota

Si eres un usuario Admin, puedes ver todas las query utilizando la opción $currentOp allUsers.

$currentOp debe ejecutarse contra la admin base de datos.

Nota

Si su canal de agregación solo contiene la etapa $currentOp, Atlas Data Federation no aplica el límite de consultas simultáneas. Puede ejecutar consultas que solo contengan la etapa $currentOp incluso después de alcanzar el número máximo de consultas simultáneas.

db.aggregate([{$currentOp: {} }])

$currentOp devuelve documentos con los siguientes campos:

Campo
Tipo
Descripción

$currentOp.type

string

Tipo de operación. El valor siempre es op.

$currentOp.opid

Identificador único de la operación en formato ObjectId. El valor del campo es el mismo que el correlationID que se puede ver en errores y registros.

$currentOp.client

string

Dirección IP (o nombre de host) y el puerto efímero de la conexión del cliente donde se origina la operación.

$currentOp.clientMetadata

Documento

Información adicional del cliente, como el nombre del cliente:

  • Nombre de la aplicación

  • Nombre y versión del controlador

  • Nombre, tipo, arquitectura y versión del sistema operativo

$currentOp.active

booleano

Especifica si la operación se ha iniciado. El valor es true si la operación se ha iniciado o completado y false si la operación está inactiva.

$currentOp.currentOpTime

Hora de inicio de la operación.

$currentOp.ns

string

Espacio de nombres al que se dirige la operación. Un espacio de nombres consta del nombre de la base de datos y el nombre de la colección concatenados con un punto. (); es"<database>.<collection>" decir,.

$currentOp.command

Documento

Un documento que contiene el objeto de comando asociado con esta operación.

$currentOp.msg

string

Un mensaje que describe el estado y el progreso de la operación.

$currentOp.progress

Documento

Un documento que contiene la cantidad de trabajo realizado para la operación.

$currentOp.progress.workDone

entero

Un número que aumenta a medida que los documentos avanzan en el flujo de trabajo, lo que indica que se ha avanzado hacia la finalización de la consulta. Este número no es un porcentaje y no permite estimar el trabajo restante.

Para el siguiente ejemplo, supongamos que una de las siguientes consultas se está ejecutando en la colección airbnb de la base de datos sample descrita en el Tutorial de introducción.

db.airbnb.find( { "address.market" : "Porto", "review_scores.review_scores_rating": {$gt: 79}}).comment("Find properties in Porto")
db.airbnb.aggregate(
[
{
$match: {
"address.market": "Porto",
"review_scores.review_scores_rating": {$gt: 79}
}
}
], { comment: "Find properties in Porto" })

El siguiente ejemplo devuelve información sobre la consulta anterior ejecutada en la colección airbnb en la base de datos sample:

db.aggregate([{$currentOp: {} }])

$currentOp devuelve los siguientes documentos. El workDone campo indica que 770 se procesaron documentos al $currentOp ejecutarse.

{
"type" : "op",
"opid" : ObjectId("1635fa35bf73f4320c6f99d0"),
"client" : "73.231.201.205:62351",
"clientMetadata" : {
"application" : {
"name" : "MongoDB Shell"
},
"driver" : {
"name" : "MongoDB Internal Client",
"version" : "4.2.0"
},
"os" : {
"type" : "Darwin",
"name" : "Mac OS X",
"architecture" : "x86_64",
"version" : "18.7.0"
}
},
"active" : true,
"currentOpTime" : ISODate("2020-03-26T12:51:43.291Z"),
"ns" : "sample.airbnb",
"command" : {
"find" : "airbnb",
"filter" : {
"address.market" : "Porto",
"review_scores.review_scores_rating" : {
"$gt" : 79
}
},
"comment" : "Find properties in Porto",
"lsid" : {
"id" : UUID("2211f8ac-56b2-4ba4-bb0c-2e5dd5b7cc21")
},
"$db" : "sample"
},
"msg" : "work done: 770",
"progress" : {
"workDone" : 770
}
}
{
"type" : "op",
"client" : "73.231.201.205:62353",
"clientMetadata" : {
"application" : {
"name" : "MongoDB Shell"
},
"driver" : {
"name" : "MongoDB Internal Client",
"version" : "4.2.0"
},
"os" : {
"type" : "Darwin",
"name" : "Mac OS X",
"architecture" : "x86_64",
"version" : "18.7.0"
}
},
"active" : true,
"currentOpTime" : ISODate("2020-03-26T12:51:47.380Z"),
"ns" : "admin.$cmd.aggregate",
"command" : {
"aggregate" : 1,
"pipeline" : [
{
"$currentOp" : {
}
}
],
"cursor" : {
},
"lsid" : {
"id" : UUID("045ea383-65d7-4e88-a989-37b7a8da23bc")
},
"$db" : "admin"
},
"msg" : "work done: 0",
"progress" : {
"workDone" : 0
}
}

Volver

Administrar límites de consultas

En esta página