Menu Docs
Página inicial do Docs
/
MongoDB Atlas
/ /

Determinar o status da query em relação à instância do banco de dados federado

Nesta página

  • Sintaxe
  • Saída
  • Exemplos

Você pode determinar o status de uma query em execução utilizando $currentOp (aggregation). Para executar $currentOp, use o auxiliar db.aggregate .

Observação

Se você for um usuário administrador, poderá exibir todas as queries usando a opção $currentOp allUsers.

$currentOp deve ser executado no banco de dados do admin .

Observação

Se o seu pipeline de agregação contiver apenas o estágio $currentOp , o Atlas Data Federation não imporá o limite do número máximo de queries simultâneas. Você pode executar queries que contêm apenas o estágio $currentOp mesmo depois de atingir o número máximo de queries simultâneas.

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

$currentOp retorna documentos com os seguintes campos:

Campo
Tipo
Descrição
$currentOp.type
string
Tipo de operação. O valor é sempre op.
$currentOp.opid
Identificador único da operação no formato ObjectId . O valor do campo é o mesmo que o correlationID que você pode ver em erros e registros.
$currentOp.client
string
Endereço IP (ou nome do host) e a porta efêmera da conexão do cliente onde a operação se origina.
$currentOp.clientMetadata
Documento

Informações adicionais do cliente, como o cliente:

  • Nome do aplicativo

  • Nome e versão do driver

  • Nome, tipo, arquitetura e versão do sistema operacional

$currentOp.active
booleano
Especifica se a operação foi iniciada. O valor é true se a operação foi iniciada ou concluída e false se a operação está ociosa.
$currentOp.currentOpTime
Hora de início da operação.
$currentOp.ns
string
Namespace que a operação tem como alvo. Um namespace consiste no nome do banco de dados e o nome da coleção concatenado com um ponto (.); ou seja, "<database>.<collection>".
$currentOp.command
Documento
Um documento contendo o objeto de comando associado a esta operação.
$currentOp.msg
string
Uma mensagem que descreve o status e progresso da operação.
$currentOp.progress
Documento
Um documento que contém a quantidade de trabalho feito para a operação.
$currentOp.progress.workDone
inteiro
Um número que aumenta à medida que os documentos passam pelo pipeline, indicando que foi feito progresso em relação à conclusão da query. Esse número não é uma porcentagem e não pode ser usado para estimar quanto trabalho resta.

No exemplo abaixo, suponha que uma das seguintes queries esteja sendo executada na collection airbnb no banco de dados do sample descrito notutorial de Introduçãoao .

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

O exemplo a seguir retorna informações sobre a query anterior em execução na collection airbnb no reconhecimento de data center sample :

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

$currentOp retorna os seguintes documentos. O campo workDone mostra que 770 documentos foram processados no momento em que $currentOp foi executado.

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

Voltar

Gerenciar limites de query