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 (agregação). Para executar $currentOp, use o assistente 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 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 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