Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

$queryStats (estágio de agregação )

$queryStats

Aviso

O estágio de agregação $queryStats não é suportado e não é garantido que seja estável em uma versão futura. Não crie uma funcionalidade que dependa de um formato de saída específico desse estágio, pois a saída pode mudar em uma versão futura.

Retorna estatísticas de tempo de execução para query registradas.

$queryStats coleta e relata métricas para query aggregate(), find(), distinct(), count(), update(), insert(), deleteOne() e deleteMany(). $queryStats não coleta informações para query que usam Queryable Encryption.

The $queryStats stage is enabled on deployments hosted on MongoDB Atlas with a cluster tier of at least M10.

Para executar o estágio $queryStats , seu pipeline deve atender aos seguintes requisitos:

  • O pipeline deve ser executado no banco de dados admin .

  • $queryStats deve ser o primeiro estágio do pipeline.

db.adminCommand( {
aggregate: 1,
pipeline: [
{
$queryStats: {
transformIdentifiers: {
algorithm: <string>,
hmacKey: <binData> /* subtype 8 - used for sensitive data */
}
}
}
],
cursor: { }
} )

Importante

Você não pode executar $queryStats em uma collection específica. Para obter exemplos completos, consulte Exemplos.

$queryStats usa os seguintes campos:

Campo
necessidade
Tipo
Descrição

transformIdentifiers

Opcional

Documento

Especifica opções de transformação adicionais para a saída $queryStats .

transformIdentifiers
.algorithm

Obrigatório ao especificar o objeto transformIdentifiers

String

O tipo de transformação de hash aplicada às informações de namespace e nomes de campo na saída. O único valor algorithm suportado no momento é hmac-sha-256.

transformIdentifiers
.hmacKey

Obrigatório ao especificar o objeto transformIdentifiers

BinData

A entrada de chave privada na transformação HMAC.

Se a sua implementação impuser controle de acesso, o usuário executando o $queryStats deverá ter as seguintes permissões:

  • Para executar o $queryStats sem a opção transformIdentifiers , o usuário deve ter a ação de privilégio queryStatsRead .

  • Para executar o $queryStats com a opção transformIdentifiers , o usuário deve ter as ações de privilégio do queryStatsRead e queryStatsReadTransformed .

O role clusterMonitor integrado fornece os privilégios queryStatsRead e queryStatsReadTransformed . O exemplo a seguir concede a função clusterMonitor no reconhecimento de data center admin :

db.grantRolesToUser(
"<user>",
[ { role: "clusterMonitor", db: "admin" } ]
)

As seções a seguir descrevem detalhes comportamentais do estágio $queryStats .

As estatísticas do estágio $queryStats são rastreadas em uma collection virtual armazenada na memória. O limite de memória para a collection virtual é de 1% da memória total do sistema.

Novidades na versão 9.0.

A partir do MongoDB 9.0, o $queryStats coleta estatísticas para uma amostra de 1% das operações de leitura e gravar por padrão. Para alterar a taxa de amostragem, defina o parâmetro internalQueryStatsSampleRate para operações de leitura ou o parâmetro internalQueryStatsWriteCmdSampleRate para operações de gravação. Ambos os parâmetros aceitam um valor entre 0.0 e 1.0.

Como $queryStats relata apenas as operações que o MongoDB amostra, sua saída representa um subconjunto das operações executar em sua implantação. As contagens e os tempos de execução refletem apenas as operação amostra.

$queryStats agrupa queries com propriedades comuns no mesmo documento de saída. O documento resultante é chamado de entrada de estatísticas de query.

$queryStats agrupa query semelhantes normalizando valores de campo fornecidos pelo usuário para seus tipos de dados. Por exemplo, um filtro especificado como { item: 'card' } é normalizado para { item : '?string'}. $queryStats também normaliza os valores de algumas opções de query, como hint e comment.

$queryStats preserva valores literais para opções como readConcern e readPreference.

Para obter a lista completa de opções incluídas em uma entrada de estatísticas de query, consulte localizar a forma de query do comando.

Quando uma chave HMAC é especificada para a opção transformIdentifiers , o $queryStats utiliza a chave HMAC para aplicar uma função de hash HMAC-SHA-256 nos seguintes dados:

  • Nomes dos campos do documento

  • Nomes de coleção

  • nomes de banco de dados

$queryStats não aplica a transformação HMAC aos seguintes dados:

  • Palavras-chave MQL, como nomes de operadores (por exemplo, $gte ).

  • Nomes de parâmetros como o parâmetro partitionBy em $setWindowFields.

  • Valores do campo. $queryStats normaliza os valores de campo em uma query para seus tipos de dados (como número ou string) quando a query é registrada. $queryStats nunca armazena valores de campo que contêm dados do usuário.

Para obter um exemplo de saída transformada, consulte Exemplo transformado.

MongoDB records $queryStats operations in the deployment logs. By default, MongoDB only logs the invocation of $queryStats operations, not the operation's output. For $queryStats operations that include the transformIdentifiers option, you can specify whether the transformed output is included in the log entry.

Para saber como controlar o comportamento de registro do $queryStats , consulte Alternar saída de registro do $queryStats.

As estatísticas de query para change streams são atualizadas quando ocorre um desses eventos:

  • Um cursor é criado

  • Uma operação getMore é concluída

  • Um cursor fecha

As estatísticas de query relatadas para change streams têm estes comportamentos:

  • Métricas de execução como totalExecMicros contêm informações para a operação mais recente (criação do cursor, getMore ou fechamento do cursor).

  • As operações getMore internas incrementam a métrica execCount .

  • firstResponseExecMicros e totalExecMicros são sempre os mesmos porque as estatísticas são coletadas e atualizadas para cada operação getMore .

  • Quando o cursor fecha, lastExecutionMicros é 0.

Novidades na versão 8.3.

Em clusters fragmentados, o MongoDB registra as estatísticas de query separadamente em cada mongod e mongos quando $queryStats está ativado. Os servidores de fragmento também registram estatísticas para queries originadas de mongos. Eles fornecem métricas em nível de fragmento mais completas para queries que os usuários roteiam por mongos.

$queryStats retorna uma matriz de entradas de estatísticas de consulta. Algumas propriedades de entrada de estatísticas de query contêm valores literais e algumas propriedades são normalizadas para agrupar queries comuns.

Observação

O MongoDB 9.0 atualizar a estrutura de saída $queryStats para melhorar a organização das métricas.

As entradas de estatísticas de query contêm os seguintes documentos de nível superior:

Documento
Descrição

key

A combinação exclusiva de atributos que definem uma entrada na saída de estatísticas de query. O key contém atributos como:

Cada combinação única de atributos cria uma entrada separada na collection virtual do $queryStats .

asOf

A hora UTC em que $queryStats leu esta entrada da collection virtual $queryStats . asOf não retorna necessariamente o mesmo horário UTC para cada resultado. Internamente, a estrutura de dados é particionada e cada partição será lida em um ponto individual no tempo.

metrics

Contém métricas agregadas de tempo de execução associadas a cada entrada de estatísticas de query. Cada entrada de estatísticas de query registra estatísticas para cada query que compartilha a mesma chave.

Cada documento na array de saída contém os seguintes campos:

Campo
Tipo
Literal ou Normalizado
Descrição

key

Documento

literal

Contém a forma de query e atributos de query adicionais que agrupam um conjunto de queries

key.queryShape

Documento

literal

Contains attributes used to group similar queries together. For more information, see Query Shape.

key.client

Documento

literal

Descreve as informações do cliente associadas à chave

key.client.application

Documento

literal

O nome do aplicativo cliente

key.client.driver

Documento

literal

Descreve o driver usado para emitir a query

key.client.driver.name

String

literal

Nome do driver usado para emitir a query. Os valores possíveis incluem mongosh e nodejs.

key.client.driver.version

String

literal

Número da versão do driver usado para emitir a query

key.client.os

Documento

literal

Descreve o sistema operacional usado pelo cliente que emitiu a query

key.client.os.type

String

literal

Tipo do sistema operacional

key.client.os.name

String

literal

Nome do sistema operacional

key.client.os.architecture

String

literal

Arquitetura do sistema operacional. Os valores possíveis incluem arm64 e x86_64.

key.client.os.version

String

literal

Número da versão do sistema operacional

key.readConcern

Documento

literal

A referência de leitura para a chave

key.collectionType

String

literal

The type of collection the query was issued on. For more information, see Collection Type.

key.hint

Documento ou string

Normalizado

O índice que foi usado como dica para a query

key.batchSize

String

Normalizado

O tamanho do lote da chave. O tamanho do lote especifica o número máximo de documentos que podem ser devolvidos em cada lote de um resultado de query. Por padrão, o tamanho do lote inicial é o menor de 101 documentos ou 16 mebibytes (MiB) de documentos. Os lotes subsequentes têm um tamanho máximo de 16 MiB. batchSize pode impor um limite menor do que 16 MiB, mas não maior. Quando definido, o batchSize é o menor entre batchSize documentos ou 16 MiB de documentos.

key.comment

String

Normalizado

Comentário associado à chave

key.maxTimeMS

String

Normalizado

valor maxTimeMS associado à chave

key.noCursorTimeout

Boolean

Normalizado

Opção noCursorTimeout associada à chave

key.readPreference

String

literal

preferência de leitura associada à chave

key.apiVersion

String

literal

A versão da Stable API associada à chave. Consulte MongoDB Stable API para atualizações de servidor.

key.apiStrict

Boolean

literal

O valor do parâmetro apiStrict associado à chave. Consulte stable API.

key.apiDeprecationErrors

Boolean

literal

O valor do parâmetro apiDeprecationErrors associado à chave. Consulte stable API.

keyHash

String

literal

Uma representação em hash dos valores no key. Cada valor keyHash único corresponde a uma entrada única no armazenamento de memória $queryStats .

queryShapeHash

String

literal

Novidades na versão 8.0.

queryShapeHash é uma string hexadecimal com o hash de uma forma de query. Para obter detalhes, consulte Formas de query.

metrics

Documento

literal

Descreve estatísticas de tempo de execução para a chave

metrics.cursor

Documento

literal

Novidades na versão 9.0.

Métricas relacionadas ao cursor e ao protocolo de lote

metrics
.cursor
.firstResponseExecMicros

Documento

literal

Alterado na versão 9.0.

Descreve o tempo gasto desde o início do processamento de uma query na chave até quando o servidor retorna o primeiro lote de resultados

Todos os subcampos de firstResponseExecMicros são relatados em microssegundos.

metrics.queryExec

Documento

literal

Novidades na versão 9.0.

Métricas relacionadas à execução de query

metrics
.queryExec
.docsReturned

Documento

literal

Alterado na versão 9.0.

Descreve o número de documento retornados por query dentro da chave

metrics
.queryExec
.docsReturned
.sum

Número longo

literal

Número total de documento retornados por query com a chave fornecida

metrics
.queryExec
.docsReturned
.max

Número longo

literal

Número máximo de documentos retornados por uma query com a chave fornecida

metrics
.queryExec
.docsReturned
.min

Número longo

literal

Menor número de documentos retornados por uma query com a chave fornecida

metrics
.queryExec
.docsReturned
.sumOfSquares

NumberDecimal

literal

Soma dos quadrados do número de documentos retornados por uma query dentro da chave.

Um valor alto de sumOfSquares indica alta variação no número de documento retornados entre query individuais.

metrics
.queryExec
.keysExamined

Documento

literal

Descreve o número de chaves examinadas por queries

metrics
.queryExec
.keysExamined
.sum

Inteiro

literal

Número total de chaves examinadas

metrics
.queryExec
.keysExamined
.max

Número longo

literal

Número máximo de chaves examinadas

metrics
.queryExec
.keysExamined
.min

Número longo

literal

Menor número de chaves examinadas

metrics
.queryExec
.keysExamined
.sumOfSquares

NumberDecimal

literal

Soma dos quadrados do número de chaves examinadas.

Um valor sumOfSquares alto indica alta variação no número de chaves examinadas em queries individuais.

metrics
.queryExec
.docsExamined

Documento

literal

Alterado na versão 9.0.

Descreve o número de documentos examinados por queries

metrics
.queryExec
.docsExamined
.sum

Inteiro

literal

Número total de documentos examinados na query

metrics
.queryExec
.docsExamined
.max

Número longo

literal

Número máximo de documentos examinados

metrics
.queryExec
.docsExamined
.min

Número longo

literal

Número mínimo de documentos examinados

metrics
.queryExec
.docsExamined
.sumOfSquares

NumberDecimal

literal

Soma de quadrados do número de documentos examinados.

Um valor sumOfSquares alto indica alta variação no número de documentos examinados em queries individuais.

metrics
.queryExec
.bytesRead

Documento

literal

Alterado na versão 9.0.

Descreve o número de bytes lidos por query

metrics
.queryExec
.bytesRead
.sum

Inteiro

literal

Número total de bytes lidos na query

metrics
.queryExec
.bytesRead
.max

Número longo

literal

Número máximo de bytes lidos

metrics
.queryExec
.bytesRead
.min

Número longo

literal

Número mínimo de bytes lidos

metrics
.queryExec
.bytesRead
.sumOfSquares

NumberDecimal

literal

Soma dos quadrados do número de bytes lidos

metrics
.queryExec
.readTimeMicros

Documento

literal

Alterado na versão 9.0.

Descreve o tempo de leitura da query em microssegundos

metrics
.queryExec
.readTimeMicros
.sum

Inteiro

literal

Tempo total de leitura da query em microssegundos

metrics
.queryExec
.readTimeMicros
.max

Número longo

literal

Tempo máximo de leitura da query em microssegundos

metrics
.queryExec
.readTimeMicros
.min

Número longo

literal

Tempo mínimo de leitura da query em microssegundos

metrics
.queryExec
.readTimeMicros
.sumOfSquares

NumberDecimal

literal

Soma dos quadrados do tempo de leitura da query em microssegundos

metrics
.queryExec
.delinquentAcquisitions

Número longo

literal

Alterado na versão 9.0.

Número de vezes que as operações de query excederam o tempo esperado de aquisição do ticket de execução.

metrics
.queryExec
.totalAcquisitionDelinquencyMillis

Número longo

literal

Alterado na versão 9.0.

Tempo total em milissegundos em que as operações de query excederam o tempo esperado de aquisição do ticket de execução.

metrics
.queryExec
.maxAcquisitionDelinquencyMillis

Número longo

literal

Alterado na versão 9.0.

Maior duração de tempo em milissegundos em que uma operação de query excedeu o tempo esperado de aquisição do ticket de execução.

metrics.lastExecutionMicros

Número longo

literal

Tempo de execução de execução para a query mais recente para todas as queries com a chave fornecida

metrics.execCount

Número longo

literal

Número de vezes que a query com a chave fornecida foi executada

metrics.queryPlanner

Documento

literal

Alterado na versão 9.0.

Métricas relacionadas a plano de query

metrics
.queryPlanner
.hasSortStage

Documento

literal

Alterado na versão 9.0.

Objeto que contém dois campos: true e false. Cada campo conta o número de queries correspondentes onde o valor de hasSortStage é true ou false, respectivamente.

hasSortStage é true quando o MongoDB deve classificar os documentos depois de recebê-los de um cursor.

metrics
.queryPlanner
.usedDisk

Documento

literal

Alterado na versão 9.0.

Objeto que contém dois campos: true e false. Cada campo conta o número de queries correspondentes onde o valor de usedDisk é true ou false, respectivamente.

usedDisk é true quando a query grava dados em arquivos temporários devido a restrições de memória.

metrics
.queryPlanner
fromMultiPlanner

Documento

literal

Alterado na versão 9.0.

Objeto que contém dois campos: true e false. Cada campo conta o número de queries correspondentes onde o valor de fromMultiPlanner é true ou false, respectivamente.

fromMultiPlanner é true quando o planejador de query avalia vários planos antes de escolher o plano de execução vencedor para a query.

metrics
.queryPlanner
fromPlanCache

Documento

literal

Alterado na versão 9.0.

Objeto que contém dois campos: true e false. Cada campo conta o número de queries correspondentes onde o valor de fromPlanCache é true ou false, respectivamente.

fromPlanCache é true quando o planejador de query pode usar um plano do cache de planos.

metrics
.queryPlanner
.planShapeCounters

Documento

literal

Novidades na versão 9.0.

Counts of the plan shapes that MongoDB selected for queries with the given key. For details, see Plan Shape Counters.

metrics
.queryPlanner
.planShapeCounters
.patterns

Documento

literal

Novidades na versão 9.0.

Contagens das formas gerais dos planos vencedores. Cada plano vencedor corresponde a no máximo um padrão.

metrics
.queryPlanner
.planShapeCounters
.nodes

Documento

literal

Novidades na versão 9.0.

Contagens dos tipos de estágios de plano que aparecem nos planos vencedores. Um único plano vencedor pode corresponder a vários contadores de nó.

metrics
.queryPlanner
.planShapeCounters
.accessPaths

Documento

literal

Novidades na versão 9.0.

Contagens dos caminhos de acesso aos dados e limites do índice que os planos vencedores usam. Um único plano vencedor pode corresponder a vários contadores de caminho de acesso.

metrics.writes

Documento

literal

Alterado na versão 9.0.

Métricas relacionadas a gravar

metrics
.writes
nMatched

Número longo

literal

Novidades na versão 9.0.

O número de documentos que um atualizar seleciona

metrics
.writes
nUpserted

Número longo

literal

Novidades na versão 9.0.

O número de documentos que uma operação de atualizar insere

metrics
.writes
nModified

Número longo

literal

Novidades na versão 9.0.

O número de documentos que uma operação de atualização modifica

metrics
.writes
nDeleted

Número longo

literal

Novidades na versão 9.0.

O número de documentos que uma operação de exclusão exclui

metrics
.writes
nInserted

Número longo

literal

Novidades na versão 9.0.

O número de documentos que uma operação de inserção insere, excluindo upserts

metrics
.writes
nUpdateOps

Número longo

literal

Novidades na versão 9.0.

O número de atualizar na solicitação de atualizar original

metrics.totalExecMicros

Documento

literal

Descreve o tempo total gasto executando query com a chave fornecida. Se a query resultou em getMores, totalExecMicros inclui o tempo gasto processando as getMore solicitações. totalExecMicros não inclui o tempo gasto aguardando o cliente.

Todos os subcampos de totalExecMicros são relatados em microssegundos.

metrics
.totalExecMicros
.sum

Número longo

literal

Tempo total gasto executando query com a chave fornecida

metrics
.totalExecMicros
.max

Número longo

literal

Maior tempo gasto executando uma query com a chave fornecida

metrics
.totalExecMicros
.min

Número longo

literal

Menor tempo gasto executando uma query com a chave fornecida

metrics
.totalExecMicros
.sumOfSquares

NumberDecimal

literal

Soma dos quadrados do tempo total de execução de todas as query com a chave fornecida. Um valor alto de sumOfSquares indica alta variação nos tempos de execução da query.

metrics
.cursor
.firstResponseExecMicros
.sum

Número longo

literal

Quantidade combinada de tempo gasto desde o início do processamento da query até quando o servidor retorna o primeiro lote de resultados

metrics
.cursor
.firstResponseExecMicros
.max

Número longo

literal

Maior tempo gasto desde o início do processamento de query até quando o servidor retorna o primeiro batch de resultados

metrics
.cursor
.firstResponseExecMicros
.min

Número longo

literal

O menor tempo gasto desde o início do processamento da query até quando o servidor retorna o primeiro lote de resultados

metrics
.cursor
.firstResponseExecMicros
.sumOfSquares

NumberDecimal

literal

Soma dos quadrados do tempo gasto desde o início do processamento da query até quando o servidor retorna o primeiro lote de resultados.

Um valor alto de sumOfSquares indica alta variação nos tempos de processamento da query.

metrics.firstSeenTimestamp

Data

literal

Tempo em que uma query com a chave fornecida foi usada pela primeira vez desde a última reinicialização

metrics.latestSeenTimestamp

Data

literal

Hora em que uma query com a chave fornecida foi usada mais recentemente

metrics.workingTimeMillis

Número longo

literal

O tempo de execução da operação, excluindo pausas intencionais, como tempo de espera em travas e controle de fluxo.

metrics
.costBasedRanker

Documento

literal

Contém métricas relacionadas a CBR quando é usado durante o planejamento de query. CBR avalia vários planos de query e seleciona o plano mais eficiente com base nos custos estimados.

Novidades na versão 8.3.3.

metrics
.costBasedRanker
.nDocsSampled

Documento

literal

Contém métricas relacionadas ao número de documentos amostrados durante a classificação baseada em custo para queries com a chave fornecida.

Novidades na versão 8.3.3.

metrics
.costBasedRanker
.nDocsSampled
.sum

Número longo

literal

Número total de documentos amostrados durante a classificação baseada em custo.

Novidades na versão 8.3.3.

metrics
.costBasedRanker
.nDocsSampled
.max

Número longo

literal

Número máximo de documentos amostrados durante a classificação baseada em custos.

Novidades na versão 8.3.3.

metrics
.costBasedRanker
.nDocsSampled
.min

Número longo

literal

Número mínimo de documentos amostrados durante a classificação baseada em custo.

Novidades na versão 8.3.3.

metrics
.costBasedRanker
.nDocsSampled
.sumOfSquares

NumberDecimal

literal

Soma de quadrados do número de documentos amostrados durante a classificação baseada em custo.

Um valor sumOfSquares alto indica alta variação no número de documentos amostrados para query individuais.

Novidades na versão 8.3.3.

metrics
.costBasedRanker
.cardinalityEstimationMethods

Documento

literal

Contém contagens para cada método de estimativa de cardinalidade usado durante a classificação baseada em custo. Cada campo representa o número de vezes que um determinado método de estimativa foi usado.

Novidades na versão 8.3.3.

metrics
.costBasedRanker
.cardinalityEstimationMethods
.Histogram

Número longo

literal

Número de vezes que a estimativa de cardinalidade baseada em histograma foi usada.

Novidades na versão 8.3.3.

metrics
.costBasedRanker
.cardinalityEstimationMethods
.Sampling

Número longo

literal

Número de vezes que a estimativa de cardinalidade baseada em amostragem foi usada.

Novidades na versão 8.3.3.

metrics
.costBasedRanker
.cardinalityEstimationMethods
.Heuristics

Número longo

literal

Número de vezes que a estimativa de cardinalidade baseada em heurística foi usada.

Novidades na versão 8.3.3.

metrics
.costBasedRanker
.cardinalityEstimationMethods
.Mixed

Número longo

literal

Número de vezes que uma abordagem mista para estimativa de cardinalidade foi usada.

Novidades na versão 8.3.3.

metrics
.costBasedRanker
.cardinalityEstimationMethods
.Metadata

Número longo

literal

Número de vezes que a estimativa de cardinalidade baseada em metadados foi usada.

Novidades na versão 8.3.3.

metrics
.costBasedRanker
.cardinalityEstimationMethods
.Code

Número longo

literal

Número de vezes que a estimativa de cardinalidade baseada em código foi usada.

Novidades na versão 8.3.3.

metrics
.cpuNanos

Documento

literal

Contém métricas relacionadas ao uso da CPU para uma operação de query. Este documento está disponível apenas em sistemas Linux.

Novidades na versão 8.2.

metrics
.cpuNanos
.sum

Número longo

literal

Tempo total da CPU gasto por uma operação de query em nanossegundos. Este campo está disponível apenas em sistemas Linux.

Novidades na versão 8.2.

metrics
.cpuNanos
.max

Número longo

literal

Tempo máximo da CPU gasto em uma operação de query em nanossegundos. Este campo está disponível apenas em sistemas Linux.

Novidades na versão 8.2.

metrics
.cpuNanos
.min

Número longo

literal

Tempo mínimo de CPU gasto em uma operação de query em nanossegundos. Este campo está disponível apenas em sistemas Linux.

Novidades na versão 8.2.

metrics
.cpuNanos
.sumOfSquares

NumberDecimal

literal

Soma dos quadrados do tempo da CPU gastos em operações de query. Este campo está disponível apenas em sistemas Linux.

Um valor sumOfSquares alto indica alta variação no tempo de CPU para queries individuais.

Novidades na versão 8.2.

metrics
.clusterPeakTrackedMemBytes

Número longo

literal

Soma da memória rastreada de pico local e soma da memória rastreada de pico de todos os shard remotos contatados durante a execução da query.

Novidades na versão 9.0.

metrics
.peakTrackedMemBytes

Número longo

literal

Uso máximo de memória rastreada localmente.

Novidades na versão 9.0.

metrics
.planningTimeMicros

Documento

literal

Contém métricas relacionadas ao tempo gasto durante o planejamento de query para query com a chave fornecida. Todos os subcampos de planningTimeMicros são relatados em microssegundos.

Novidades na versão 8.3.

metrics
.planningTimeMicros
.sum

Número longo

literal

Tempo total de planejamento da query.

Novidades na versão 8.3.

metrics
.planningTimeMicros
.max

Número longo

literal

Tempo máximo de planejamento de query.

Novidades na versão 8.3.

metrics
.planningTimeMicros
.min

Número longo

literal

Tempo mínimo de planejamento de query.

Novidades na versão 8.3.

metrics
.planningTimeMicros
.sumOfSquares

NumberDecimal

literal

Soma dos quadrados dos tempos de planejamento de query.

Um valor sumOfSquares alto indica alta variação no tempo de planejamento para queries individuais.

Novidades na versão 8.3.

metrics
.numInterruptChecksPerSec

Número longo

literal

Número de vezes que uma operação de query chama checkForInterrupt por segundo. Essa métrica se tornará agregada se você executar a query em vários lotes usando getMores.

Novidades na versão 8.3.

metrics
.overdueInterruptApproxMaxMillis

Número longo

literal

Número máximo de milissegundos em que o sistema atrasou checkForInterrupt para uma operação de amostra de query.

Novidades na versão 8.3.

Novidades na versão 9.0.

O documento metrics.queryPlanner.planShapeCounters registra com que frequência o MongoDB selecionou cada formato de plano para queries com a chave fornecida. Use esses contadores para aprender em quais planos de query sua carga de trabalho mais se baseia.

planShapeCounters contém até três subdocumentos, cada um mapeando nomes de contadores para contagens:

Subdocumento
Descrição

patterns

Conta a forma geral de cada plano vencedor. Os padrões são mutuamente exclusivos, portanto, cada execução de query incrementa no máximo um contador de padrão.

nodes

Conta os tipos de estágios de plano que aparecem em cada plano vencedor. Os contadores de nó não são mutuamente exclusivos, portanto, uma execução de query pode incrementar vários deles.

accessPaths

Conta os caminhos de acesso aos dados e os limites do índice que cada plano vencedor usa. Os contadores de caminho de acesso não são mutuamente exclusivos, portanto, uma execução de query pode incrementar vários deles.

Cada contador aumenta em no máximo um para cada execução de query, mesmo que o plano use o estágio ou caminho de acesso correspondente muitas vezes. Por exemplo, um plano com 1,000 ramificações sob um estágio $or incrementa o contador de nó $or correspondente em um, não em 1,000. Como resultado, os contadores registram quantas execuções usaram um estágio, não quantas vezes cada execução o usou.

O MongoDB omite contadores com uma contagem de zero e omite subdocumentos que não contêm contadores. Se nenhuma das querys registradas produziu contadores de formato de plano, o MongoDB omite o documento planShapeCounters inteiramente. Por exemplo, uma query que corresponde a um único documento por _id usa um caminho rápido que não corresponde a nenhum formato de plano rastreado, portanto, sua entrada de estatísticas de query não contém nenhum documento planShapeCounters.

O MongoDB registra contadores de formato de plano apenas para a query de nível superior. Por exemplo, o MongoDB não registra contadores para o lado externo de um estágio $lookup.

Cada nome de contador de padrão lista os estágios do plano vencedor em ordem, começando com o estágio do caminho de acesso. Por exemplo, ixscanFetchSort conta os planos vencedores que usam uma verificação de índice, buscam os documentos correspondentes e, em seguida, os classificam.

Pattern names describe plans at a coarse level. They omit limit and skip stages, and they don't distinguish whether a stage applies a filter or which type of projection a plan uses. To determine those details, combine a pattern counter with the nodes counters and the query shape for the entry.

patterns pode conter os seguintes contadores:

Caminho de Acesso
Contadores

Varredura de collection

  • collscan

  • collscanProject

  • collscanProjectSort

  • collscanProjectSortProject

  • collscanSort

  • collscanSortProject

  • collscanSortProjectSort

Varredura de índice com uma busca

  • ixscanFetch

  • ixscanFetchProject

  • ixscanFetchProjectSort

  • ixscanFetchProjectSortProject

  • ixscanFetchSort

  • ixscanFetchSortProject

  • ixscanFetchSortProjectSort

  • ixscanFetchSortMerge

  • ixscanFetchSortMergeProject

Varredura de índice com um $or

  • ixscanFetchOr

  • ixscanFetchOrProject

  • ixscanFetchOrProjectSort

  • ixscanFetchOrSort

  • ixscanFetchOrSortProject

  • ixscanOrFetch

  • ixscanOrFetchProject

  • ixscanOrFetchProjectSort

  • ixscanOrFetchSort

  • ixscanOrFetchSortProject

  • ixscanOrProject

  • ixscanOrProjectSort

Varredura de índice sem uma busca imediata

  • ixscanProject

  • ixscanProjectSort

  • ixscanProjectSortProject

  • ixscanSortFetch

  • ixscanSortFetchProject

  • ixscanSortMergeFetch

  • ixscanSortMergeFetchProject

  • ixscanSortMergeProject

O MongoDB registra os contadores de nó depois que ele seleciona o mecanismo de execução de query, assim, os contadores incluem os estágios do plano que representam os estágios de agregação enviados para o mecanismo baseado em slot.

nodes pode conter os seguintes contadores:

Contador
Descrição

collscanNoFilter
collscanWithFilter

Estágios de varredura de coleção, contados separadamente com base em se o estágio aplica um filtro.

ixscanNoFilter
ixscanWithFilter

Estágios de varredura de índice, contados separadamente dependendo se o estágio aplica um filtro.

fetchNoFilter
fetchWithFilter

Estágios de busca, contados separadamente com base em se o estágio aplica um filtro.

andHashNoFilter
andHashWithFilter

Estágios de interseção de índice com hash, contados separadamente com base em se o estágio aplica um filtro.

andSorted

Estágios de interseção de índices classificados.

orNoFilterLte100Children
orWithFilterLte100Children
orNoFilterGt100Children
orWithFilterGt100Children

$or estágios, contados separadamente com base em se o estágio aplica um filtro e se o estágio tem mais de 100 estágios filhos.

sortMergeNoFilterLte100Children
sortMergeWithFilterLte100Children
sortMergeNoFilterGt100Children
sortMergeWithFilterGt100Children

Estágios de mesclagem de classificação, contados separadamente com base em se o estágio aplica um filtro e se o estágio tem mais de 100 estágios filhos.

returnKey

Estágios que retornam chaves de índice em vez de documentos.

shardingFilter

Estágios que filtram documentos órfãos em um shard.

projectionDefault
projectionCovered
projectionSimple

Estágios de projeção, contados separadamente por tipo de projeção.

sortKeyGenerator

Estágios que geram chaves de classificação para uma classificação.

sortDefaultNoLimit
sortDefaultWithLimit
sortSimpleNoLimit
sortSimpleWithLimit

Estágios de classificação, contados separadamente por tipo de classificação e se a classificação tem um limite.

limitSmall
limitMedium
limitLarge

Estágios de limite, contados separadamente pelo valor do limite. limitSmall conta limites de 100 ou menos, limitMedium conta limites de 101 a 10,000, e limitLarge conta limites maiores que 10,000.

skipSmall
skipMedium
skipLarge

Estágios de salto, contados separadamente pelo valor de salto. skipSmall conta saltos de 100 ou menos, skipMedium conta saltos de 101 a 10,000, e skipLarge conta saltos maiores que 10,000.

textOr

Estágios que combinam os resultados de uma pesquisa de texto.

match

Estágios de correspondência.

replaceRoot

Estágios que substituem a raiz de um documento.

group

Estágios de grupo.

eqLookupNoUnwind
eqLookupWithUnwind

Estágios de busca de igualdade, contados separadamente com base em se o estágio também desenrola os resultados.

unpackTsBucket

Estágios que descompactam buckets de série temporal.

hashJoin
nlj
inlj
indexProbe

Estágios de junção, contados separadamente por algoritmo de junção: junção com hash, junção de loop aninhado, junção de loop aninhado com índice e sondagem de índice.

accessPaths pode conter os seguintes contadores:

Contador
Descrição

collscan
clusteredCollscan

Varredura de coleção, contadas separadamente com base em se a varredura usa o índice clusterizado.

coveredIxscan

Varreduras de índice que não buscam documento.

ixscanFetch

Varreduras de índice que buscam documentos.

countScan

Scans que contam chaves de índice sem retornar documentos.

distinctScan
distinctScanFetch

Varreduras que ignoram chaves de índice duplicadas, contadas separadamente com base em se a varredura busca documentos.

geoNear2d
geoNear2dSphere

Pesquisas de proximidade geoespacial, contadas separadamente com base em se a query usa um índice 2d ou 2dsphere.

textMatch

Pesquisas de texto que usam um índice de texto.

otherAccessPath

Planos vencedores que não usam uma varredura de coleção, uma varredura de índice, uma varredura de contagem, uma varredura distinta ou um caminho de acesso geoespacial. Um plano que executa apenas uma pesquisa de texto incrementa textMatch e otherAccessPath.

btreeIxscan
wildcardIxscan
sparseIxscan
uniqueIxscan
hashedIxscan
multikeyIxscan

Scans de índice, contados separadamente por propriedade de índice. Um único scan de índice pode incrementar vários desses contadores.

boundsFullScan
boundsPoint
boundsBoundedRange
boundsMinKeyToValue
boundsValueToMaxKey
boundsMixture

Varreduras de índice, contadas separadamente pelos limites do índice que a varredura usa. O MongoDB incrementa boundsMixture quando a varredura usa mais de um tipo de limite.

boundsUnionedSmall
boundsUnionedLarge

Varreduras de índice onde um campo tem vários limites, contados separadamente pelo número de limites. boundsUnionedSmall conta campos com 2 a 50 limites, e boundsUnionedLarge conta campos com 51 ou mais limites.

O campo key.collectionType indica o tipo de collection em que a query registrada foi emitida. O collectionType pode ser um dos seguintes valores:

Campo
Descrição

changeStream

collection

A query foi emitida em uma collection padrão.

nonExistent

A query foi emitida em uma collection que não existe.

timeseries

A query foi emitida em uma coleção de séries temporais.

view

A query foi emitida em uma visualização.

virtual

A query foi emitida em uma collection virtual. As seguintes operações ocorrem em collections virtuais:

O documento key.queryShape contém campos de forma de query . Para saber mais sobre formas de query, consulte Formas de query.

Os campo em key.queryShape variam com base no comando que resultou na entrada de estatísticas de query. $queryStats cria entradas de estatísticas de query para os comandos aggregate, find, distinct, count, update, insert e delete.

Cada propriedade de forma de query corresponde a uma opção de query. Por exemplo, key.queryShape.sort corresponde à especificação sort() para a forma de query.

A tabela a seguir descreve as propriedades da forma de query para comandos find .

Campo
Tipo
Literal ou Normalizado

key.queryShape.filter

Documento

Normalizado

key.queryShape.sort

Documento

literal

key.queryShape.projection

Documento

Normalizado

key.queryShape.skip

Inteiro

Normalizado

key.queryShape.limit

Inteiro

Normalizado

key.queryShape.singleBatch

Boolean

literal

key.queryShape.max

Documento

Normalizado

key.queryShape.min

Documento

Normalizado

key.queryShape.returnKey

Boolean

literal

key.queryShape.showRecordId

Boolean

literal

key.queryShape.tailable

Boolean

literal

key.queryShape.oplogReplay

Boolean

literal

key.queryShape.awaitData

Boolean

literal

key.queryShape.collation

Documento

literal

key.queryShape.allowDiskUse

Boolean

literal

key.queryShape.let

Documento

Normalizado

A tabela a seguir descreve as propriedades da forma de query para comandos aggregate .

Campo
Tipo
Literal ou Normalizado

key.queryShape.pipeline

Array

Normalizado

key.queryShape.explain

Boolean

literal

key.queryShape.allowDiskUse

Boolean

literal

key.queryShape.allowPartialResults

Boolean

literal

key.queryShape.collation

Documento

literal

key.queryShape.hint

string ou documento

Normalizado

key.queryShape.let

Documento

Normalizado

A tabela a seguir descreve as propriedades da forma de query para comandos distinct .

Campo
Tipo
Literal ou Normalizado

key.queryShape.collation

Documento

Normalizado

key.queryShape.key

String

literal

key.queryShape.query

Documento

Normalizado

A tabela a seguir descreve as propriedades da forma de query para comandos count .

Campo
Tipo
Literal ou Normalizado

key.queryShape.collation

Documento

Normalizado

key.queryShape.query

Documento

Normalizado

key.queryShape.limit

Inteiro

Normalizado

key.queryShape.skip

Inteiro

Normalizado

Novidades na versão 9.0.

A tabela a seguir descreve as propriedades da forma de query para comandos update. $queryStats acompanha as estatísticas de forma de query para cada declaração de atualizar no array updates, não para o comando update de nível superior como um todo.

Campo
Tipo
Literal ou Normalizado

key.queryShape.q

Documento

Normalizado

key.queryShape.u

documento ou array

Normalizado

key.queryShape.c

Documento

Normalizado

key.queryShape.arrayFilters

matriz de documentos

Normalizado

key.queryShape.multi

Boolean

literal

key.queryShape.upsert

Boolean

literal

key.queryShape.let

Documento

Normalizado

key.queryShape.collation

Documento

literal

Importante

$queryStats não coleta estatísticas de forma de query para operações update em coleções de séries temporais.

Novidades na versão 9.0.

A tabela a seguir descreve as propriedades da forma de query para comandos insert. $queryStats acompanha as estatísticas da forma de query uma vez para todo o comando insert, não para cada documento no array documents. O MongoDB sempre normaliza documents para um valor de marcador fixo, independentemente do número ou conteúdo dos documentos inseridos.

Campo
Tipo
Literal ou Normalizado

key.queryShape.documents

Array

Normalizado

Importante

$queryStats não coleta estatísticas de forma de query para operações insert em coleções de séries temporais.

Novidades na versão 9.0.

A tabela a seguir descreve as propriedades da forma de query para comandos delete. $queryStats acompanha as estatísticas de forma de query para cada declaração excluir no array deletes, não para o comando delete de nível superior como um todo.

key.queryShape.limit reflete o campo limit da declaração de excluir, onde 0 excluir todos os documentos correspondentes e 1 excluir um único documento. Ele não limita o número de entradas de estatísticas de query.

Campo
Tipo
Literal ou Normalizado

key.queryShape.q

Documento

Normalizado

key.queryShape.limit

Inteiro

literal

key.queryShape.let

Documento

Normalizado

key.queryShape.collation

Documento

literal

Importante

$queryStats não coleta estatísticas de forma de query para operações delete em coleções de séries temporais.

As entradas de estatísticas de query podem conter um documento metrics.supplementalMetrics que fornece informações adicionais sobre suas queries.

If your query shape contains $vectorSearch, $queryStats outputs the following supplemental metrics:

Campo
Tipo
Descrição

metrics
.supplementalMetrics
.vectorSearch

Documento

Métricas adicionais sobre um estágio de agregação $vectorSearch

metrics
.supplementalMetrics
.vectorSearch
.limit

Documento

Métricas relacionadas ao valor limit do estágio de agregação $vectorSearch

metrics
.supplementalMetrics
.vectorSearch
.numCandidatesLimitRatio

Documento

Métricas relacionadas ao valor numCandidates do estágio de agregação $vectorSearch. $queryStats expressa essas métricas como uma proporção de numCandidates dividido pelo valor limit.

Para executar os exemplos nesta seção, comece com os seguintes dados:

db.products.insertMany(
[
{ item: "card", qty: 15 },
{ item: "envelope", qty: 20 },
{ item: "stamps" , qty: 30 }
]
)

Em seguida, execute estes comandos:

db.products.find( { item: "card" } )
db.products.aggregate( [
{
$match: { qty: { $gt: 20 } }
}
] )

Os seguintes exemplos mostram a saída do $queryStats utilizando diferentes tipos de transformação de dados:

O exemplo de saída $queryStats nas seções a seguir pode variar de acordo com a execução de outros comandos.

Entrada:

db.getSiblingDB("admin").aggregate( [
{
$queryStats: { }
}
] )

Saída:

[
{
key: {
queryShape: {
cmdNs: { db: 'test', coll: 'products' },
command: 'find',
filter: { item: { '$eq': '?string' } }
},
client: {
driver: { name: 'nodejs|mongosh', version: '5.1.0' },
os: {
type: 'Darwin',
name: 'darwin',
architecture: 'arm64',
version: '22.6.0'
},
platform: 'Node.js v16.19.1, LE (unified)',
version: '5.1.0|1.8.0',
application: { name: 'mongosh 1.8.0' }
},
collectionType: 'collection'
},
keyHash: 'dsoJ+LHAru0z6MJ1/IygJnnLTrlpVYYmPnlmNZbZrLI=',
queryShapeHash: "uxMLCvpiJ5N/IRqt4c28/0A8F01C8AA16CA805FF5C1A5737535F97E40C2A90CE91A82CCB7A74C7CCB9C48",
metrics: {
lastExecutionMicros: Long("4254"),
execCount: Long("1"),
totalExecMicros: {
sum: Long("4254"),
max: Long("4254"),
min: Long("4254"),
sumOfSquares: Decimal128("18096516")
},
firstResponseExecMicros: {
sum: Long("4254"),
max: Long("4254"),
min: Long("4254"),
sumOfSquares: Decimal128("18096516")
},
docsReturned: {
sum: Long("1"),
max: Long("1"),
min: Long("1"),
sumOfSquares: Decimal128("1")
},
planningTimeMicros: {
sum: Long("2150"),
max: Long("2150"),
min: Long("2150"),
sumOfSquares: Decimal128("4622500")
},
costBasedRanker: {
cardinalityEstimationMethods: {
Histogram: Long("0"),
Sampling: Long("0"),
Heuristics: Long("0"),
Mixed: Long("0"),
Metadata: Long("0"),
Code: Long("0")
},
nDocsSampled: {
sum: Long("0"),
max: Long("0"),
min: Long("0"),
sumOfSquares: Decimal128("0")
}
},
firstSeenTimestamp: ISODate("2023-09-14T12:30:27.989Z"),
latestSeenTimestamp: ISODate("2023-09-14T12:30:27.989Z")
},
asOf: Timestamp({ t: 1694695007, i: 0 })
},
{
key: {
queryShape: {
cmdNs: { db: 'test', coll: 'products' },
command: 'aggregate',
pipeline: [
{ '$match': { qty: { '$gt': '?number' } } }
]
},
apiVersion: '1',
client: {
driver: { name: 'nodejs|mongosh', version: '5.1.0' },
os: {
type: 'Darwin',
name: 'darwin',
architecture: 'arm64',
version: '22.6.0'
},
platform: 'Node.js v16.19.1, LE (unified)',
version: '5.1.0|1.8.0',
application: { name: 'mongosh 1.8.0' }
},
collectionType: 'collection',
cursor: { batchSize: '?number' }
},
keyHash: '2QLBfL0m1lliStdN4XvBjqVBtZQ6ffaB2L1pJ99twT8=',
queryShapeHash: "uxMLCvpiJ5N/IRqt4c28/0A8F01C8AA16CA805FF5C1A5737535F97E40C2A90CE91A82CCB7A74C7CCB9C48",
metrics: {
lastExecutionMicros: Long("350"),
execCount: Long("3"),
totalExecMicros: {
sum: Long("3084"),
max: Long("2499"),
min: Long("235"),
sumOfSquares: Decimal128("6422726")
},
firstResponseExecMicros: {
sum: Long("3084"),
max: Long("2499"),
min: Long("235"),
sumOfSquares: Decimal128("6422726")
},
docsReturned: {
sum: Long("3"),
max: Long("1"),
min: Long("1"),
sumOfSquares: Decimal128("3")
},
planningTimeMicros: {
sum: Long("1850"),
max: Long("850"),
min: Long("420"),
sumOfSquares: Decimal128("1252500")
},
costBasedRanker: {
cardinalityEstimationMethods: {
Histogram: Long("0"),
Sampling: Long("0"),
Heuristics: Long("0"),
Mixed: Long("0"),
Metadata: Long("0"),
Code: Long("0")
},
nDocsSampled: {
sum: Long("0"),
max: Long("0"),
min: Long("0"),
sumOfSquares: Decimal128("0")
}
},
firstSeenTimestamp: ISODate("2023-11-29T21:16:17.796Z"),
latestSeenTimestamp: ISODate("2023-11-29T21:17:12.385Z")
},
asOf: Timestamp({ t: 1701292827, i: 0 })
}
]

Entrada:

db.getSiblingDB("admin").aggregate( [
{
$queryStats: {
transformIdentifiers: {
algorithm: "hmac-sha-256" ,
hmacKey: BinData(8, "87c4082f169d3fef0eef34dc8e23458cbb457c3sf3n2")
}
}
}
] )

Saída:

[
{
key: {
queryShape: {
cmdNs: {
db: 'Mtrt3iG7dsX5c5uCSIhSVlcu5qD3u3xx2EQnS1dJLxM=',
coll: '3oJE6AyOuf8h5NqWiXETxulFlPm3QUXbMnMjL2EqAU4='
},
command: 'find',
filter: {
'VWVRow7Ure92ajRPfrpWiU8OtDeWcLePFIq0+tooBng=': { '$eq': '?string' }
}
},
client: {
driver: { name: 'nodejs|mongosh', version: '5.1.0' },
os: {
type: 'Darwin',
name: 'darwin',
architecture: 'arm64',
version: '22.6.0'
},
platform: 'Node.js v16.19.1, LE (unified)',
version: '5.1.0|1.8.0',
application: { name: 'mongosh 1.8.0' }
},
collectionType: 'collection'
},
keyHash: 'q4vxam+wbk8tTrl8D0MDFH1LQAbI8fWspfkGKhEUROk=',
queryShapeHash: "uxMLCvpiJ5N/IRqt4c28/0A8F01C8AA16CA805FF5C1A5737535F97E40C2A90CE91A82CCB7A74C7CCB9C48",
metrics: {
lastExecutionMicros: Long("4254"),
execCount: Long("1"),
keysExamined: {
sum: Int("5"),
max: Long("5"),
min: Long("5"),
sumOfSquares: Decimal128("25")
},
docsExamined: {
sum: Long("1"),
max: Long("1"),
min: Long("1"),
sumOfSquares: Decimal128("1")
},
hasSortStage: {true: Long("0"), false: Long("1")},
usedDisk: {true: Long("0"), false: Long("1")},
fromMultiPlanner: {true: Long("0"), false: Long("1")},
fromPlanCache: {true: Long("1"), false: Long("0")},
totalExecMicros: {
sum: Long("4254"),
max: Long("4254"),
min: Long("4254"),
sumOfSquares: Decimal128("18096516")
},
firstResponseExecMicros: {
sum: Long("4254"),
max: Long("4254"),
min: Long("4254"),
sumOfSquares: Decimal128("18096516")
},
docsReturned: {
sum: Long("1"),
max: Long("1"),
min: Long("1"),
sumOfSquares: Decimal128("1")
},
planningTimeMicros: {
sum: Long("2150"),
max: Long("2150"),
min: Long("2150"),
sumOfSquares: Decimal128("4622500")
},
costBasedRanker: {
cardinalityEstimationMethods: {
Histogram: Long("0"),
Sampling: Long("0"),
Heuristics: Long("0"),
Mixed: Long("0"),
Metadata: Long("0"),
Code: Long("0")
},
nDocsSampled: {
sum: Long("0"),
max: Long("0"),
min: Long("0"),
sumOfSquares: Decimal128("0")
}
},
firstSeenTimestamp: ISODate("2023-09-14T12:30:27.989Z"),
latestSeenTimestamp: ISODate("2023-09-14T12:30:27.989Z")
},
asOf: Timestamp({ t: 1694695712, i: 0 })
},
{
key: {
queryShape: {
cmdNs: {
db: 'Mtrt3iG7dsX5c5uCSIhSVlcu5qD3u3xx2EQnS1dJLxM=',
coll: '3oJE6AyOuf8h5NqWiXETxulFlPm3QUXbMnMjL2EqAU4='
},
command: 'aggregate',
pipeline: [
{
'$match': {
'RVqrwNEPotzdKnma/T7s4YcgNvpqO29BMDoni2N4IMI=': { '$gt': '?number' }
}
}
]
},
apiVersion: '1',
client: {
driver: { name: 'nodejs|mongosh', version: '5.1.0' },
os: {
type: 'Darwin',
name: 'darwin',
architecture: 'arm64',
version: '22.6.0'
},
platform: 'Node.js v16.19.1, LE (unified)',
version: '5.1.0|1.8.0',
application: { name: 'mongosh 1.8.0' }
},
collectionType: 'collection',
cursor: { batchSize: '?number' }
},
keyHash: 'HEhpQTYB+/wVoHLkOkMd+EC2jguQlMJ1N/vTE7+b8Js=',
queryShapeHash: "uxMLCvpiJ5N/IRqt4c28/0A8F01C8AA16CA805FF5C1A5737535F97E40C2A90CE91A82CCB7A74C7CCB9C48",
metrics: {
lastExecutionMicros: Long("350"),
execCount: Long("3"),
keysExamined: {
sum: Int("5"),
max: Long("5"),
min: Long("5"),
sumOfSquares: Decimal128("25")
},
docsExamined: {
sum: Long("1"),
max: Long("1"),
min: Long("1"),
sumOfSquares: Decimal128("1")
},
hasSortStage: {true: Long("0"), false: Long("1")},
usedDisk: {true: Long("0"), false: Long("1")},
fromMultiPlanner: {true: Long("0"), false: Long("1")},
fromPlanCache: {true: Long("1"), false: Long("0")},
totalExecMicros: {
sum: Long("3084"),
max: Long("2499"),
min: Long("235"),
sumOfSquares: Decimal128("6422726")
},
firstResponseExecMicros: {
sum: Long("3084"),
max: Long("2499"),
min: Long("235"),
sumOfSquares: Decimal128("6422726")
},
docsReturned: {
sum: Long("3"),
max: Long("1"),
min: Long("1"),
sumOfSquares: Decimal128("3")
},
planningTimeMicros: {
sum: Long("1850"),
max: Long("850"),
min: Long("420"),
sumOfSquares: Decimal128("1252500")
},
costBasedRanker: {
cardinalityEstimationMethods: {
Histogram: Long("0"),
Sampling: Long("0"),
Heuristics: Long("0"),
Mixed: Long("0"),
Metadata: Long("0"),
Code: Long("0")
},
nDocsSampled: {
sum: Long("0"),
max: Long("0"),
min: Long("0"),
sumOfSquares: Decimal128("0")
}
},
firstSeenTimestamp: ISODate("2023-11-29T21:16:17.796Z"),
latestSeenTimestamp: ISODate("2023-11-29T21:17:12.385Z")
},
asOf: Timestamp({ t: 1701293302, i: 0 })
},
]

O MongoDB Atlas usa periodicamente $queryStats para coletar dados anônimos sobre suas query, o que ajuda a melhorar os produtos MongoDB. Seus dados também podem ser usados para fazer sugestões de funcionalidades com base no uso. O MongoDB mantém os dados coletados com $queryStats por quatro anos.

Quando o Atlas executa o $queryStats em seu sistema, ele usa uma chave HMAC exclusiva por organização do Atlas para transformar seus dados e evitar a coleta de informações confidenciais.