Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Docs Menu

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

Puedes determinar el estado de una query en ejecución usando $currentOp (agregación). Para ejecutar $currentOp, utiliza el asistente db.aggregate.

Nota

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

$currentOp debe ejecutarse contra la base de datos admin.

Nota

Si su pipeline de agregación solo contiene la etapa $currentOp, Atlas Data Federation no aplica el límite en el número máximo de consultas simultáneas. Puedes ejecutar queries que solo contengan la etapa $currentOp incluso después de alcanzar el número máximo de queries 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 correlationID que puedes ver en los errores y registros.

$currentOp.client

string

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

$currentOp.clientMetadata

Documento

Información adicional del cliente, como por ejemplo:

  • 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 ha comenzado. El valor es true si la operación ha comenzado o finalizado y false si la operación está inactiva.

$currentOp.currentOpTime

Hora de inicio de la operación.

$currentOp.ns

string

Namespace al que se dirige la operación. Un namespace consiste en el nombre de la base de datos y el nombre de la colección concatenados con un punto (.); es decir, "<database>.<collection>".

$currentOp.command

Documento

Un documento que contiene el objeto command 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 por la pipeline, indicando que se ha avanzado hacia la finalización de la query. Este número no es un porcentaje y no puede usarse para estimar cuánta tarea queda por realizar.

Para el ejemplo siguiente, supongamos que se está ejecutando una de las siguientes queries en la colección airbnb de la base de datos sample descrita en el tutorial Get Started.

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 query anterior que se ejecuta en la colección airbnb de la base de datos sample:

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

$currentOp devuelve los siguientes documentos. El campo workDone muestra que se habían procesado 770 documentos en el momento en que se ejecutó $currentOp.

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

En esta página