MongoDB com drivers
Importante
Método mongosh
Esta página documenta um método mongosh. Esta não é a documentação para comandos de banco de dados ou drivers específicos de idioma, como Node.js.
Para o comando do banco de dados, consulte o comando collStats.
Para drivers de API do MongoDB, consulte a documentação do driver do MongoDB específica da linguagem.
Definição
db.collection.stats(<option>)Retorna estatísticas sobre a coleção.
Retorna: Um documento que contém estatísticas sobre a coleção especificada. Consulte
collStatspara um detalhamento das estatísticas retornadas.
Observação
db.collection.stats() chama internamente o estágio de agregação $collStats por padrão.
Sintaxe
O método tem o seguinte formato:
db.collection.stats({ scale: <num>, // Optional indexDetails: <boolean>, // Optional indexDetailsKey: <document>, // Optional indexDetailsName: <string>. // Optional })
Campos
Campo | Tipo | Descrição |
|---|---|---|
| número | Opcional. O fator de escala para os dados de vários tamanhos. O padrão Se você especificar um fator de escala não inteiro, o MongoDB utilizará a parte inteira do fator especificado. Por exemplo, se você especificar um fator de escala de A partir da versão 4.2, a saída inclui o |
| booleano | Opcional. Se Funciona apenas para o mecanismo de armazenamento WiredTiger. Padrão é |
| documento | Opcional. Se Se nenhuma correspondência for encontrada, Use |
| string | Opcional. Se Se nenhuma correspondência for encontrada, Use o |
Para especificar apenas o fator scale, o MongoDB suporta o formato legado:
db.collection.stats(<number>)
Compatibilidade
Esse método está disponível em implantações hospedadas nos seguintes ambientes:
- MongoDB Atlas: o serviço totalmente gerenciado para implantações MongoDB na nuvem
Observação
Este comando é suportado em todos os clusters do MongoDB Atlas . Para obter informações sobre o suporte do Atlas para todos os comandos, consulte Comandos não suportados.
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB
Comportamento
Tamanhos em escala
A menos que especificado de outra forma pelo nome da métrica (como "bytes currently in the cache"), os valores relacionados ao tamanho são exibidos em bytes e podem ser substituídos por scale.
O fator de escala arredonda os valores de tamanho afetados para números inteiros.
Mecanismo de armazenamento
Dependendo do mecanismo de armazenamento, os dados retornados podem ser diferentes. Para obter detalhes sobre os campos, consulte detalhes de saída.
Precisão após Desligamento Inesperado
Depois de um desligamento impróprio de um mongod usando o mecanismo de armazenamento Wired Tiger, as estatísticas de contagem e tamanho informadas pelo db.collection.stats() podem ser imprecisas.
A quantidade de desvio depende do número de operações de inserção, atualização ou exclusão executadas entre o último ponto de verificação e o desligamento não limpo. Os pontos de verificação geralmente ocorrem a cada 60 segundos. No entanto, mongod instâncias executadas com configurações de --syncdelay não padrão podem ter pontos de verificação mais ou menos frequentes.
Execute validate em cada collection no mongod para restaurar as estatísticas depois de um desligamento impróprio.
Após um desligamento impróprio:
validateatualiza a estatística de contagem nacollStatssaída com o valor mais recente.
Restrição de estado do membro do conjunto de réplica
Para executar em um nó do conjunto de réplicas, as operações decollStats exigem que o nó esteja no estado PRIMARY ou SECONDARY. Se o nó estiver em outro estado, como STARTUP2, haverá erros na operação.
Comportamento do filtro de índice
A filtragem em indexDetails usando indexDetailsKey ou indexDetailsName retornará apenas um único índice correspondente. Se nenhuma correspondência exata for encontrada, indexDetails mostrará informações sobre todos os índices da coleção.
O campo indexDetailsKey obtém um documento do seguinte formulário:
{ '<string>' : <value>, '<string>' : <value>, ... }
Em que <string>> é o campo indexado e <value> é a direção do índice ou o tipo de índice especial, como text ou 2dsphere. Consulte tipos de índice para obter a lista completa de tipos de índice.
A partir do MongoDB 8.0, use configurações de query em vez de adicionar filtros de índice. Os filtros de índice estão obsoletos a partir do MongoDB 8.0.
As configurações de query têm mais funcionalidades do que os filtros de índice. Além disso, os filtros de índice não são persistentes e você não pode criar facilmente filtros de índice para todos os nós de cluster. Para adicionar configurações de query e explorar exemplos, consulte setQuerySettings.
Desligamento e contagem inesperados
Para instâncias do MongoDB usando o mecanismo de armazenamento WiredTiger , após um desligamento impuro, as estatísticas sobre tamanho e contagem podem diminuir em até 1000 documentos, conforme relatado por collStats, dbStats, count. Para restaurar as estatísticas corretas para a coleção, execute o validate na coleção.
Índices em andamento
O db.collection.stats() inclui informações sobre índices atualmente sendo construídos. Para obter detalhes, consulte:
Exemplos
Os exemplos nesta página usam dados do conjunto de dados sample_mflix. Para obter detalhes sobre como carregar esse conjunto de dados em sua implantação autogerenciada do MongoDB , consulte Carregar o conjunto de dados de amostra. Se você fez modificações nos bancos de dados de amostra, talvez seja necessário descartar e recriar os bancos de dados para executar os exemplos nesta página.
Pesquisa básica de estatísticas
A seguinte operação retorna estatísticas na coleção movies no banco de dados sample_mflix:
db.movies.stats()
{ ok: 1, capped: false, ns: 'sample_mflix.movies', size: ..., count: 21349, avgObjSize: 1598, storageSize: ..., nindexes: 2, totalIndexSize: ..., totalSize: ..., indexSizes: { _id_: ..., cast_text_fullplot_text_genres_text_title_text: ... }, scaleFactor: 1 }
Se você não especificar um parâmetro scale, todos os valores de tamanho estarão em bytes.
Pesquisa de estatísticas com escala
A seguinte operação retorna os valores de tamanho em kilobytes em vez de bytes especificando um scale de 1024:
db.movies.stats( { scale : 1024 } )
{ ok: 1, capped: false, ns: 'sample_mflix.movies', size: ..., count: 21349, avgObjSize: 1598, storageSize: ..., nindexes: 2, totalIndexSize: ..., totalSize: ..., indexSizes: { _id_: ..., cast_text_fullplot_text_genres_text_title_text: ... }, scaleFactor: 1024 }
Pesquisa de estatísticas com detalhes do índice
A operação a seguir retorna um campo indexDetails que contém informações relacionadas a cada um dos índices da coleção:
db.movies.stats( { indexDetails : true } )
{ ok: 1, capped: false, ns: 'sample_mflix.movies', count: 21349, nindexes: 2, indexDetails: { _id_: ..., cast_text_fullplot_text_genres_text_title_text: ... }, indexSizes: { _id_: ..., cast_text_fullplot_text_genres_text_title_text: ... }, scaleFactor: 1 }
Pesquisa de estatísticas com detalhes de índice filtrados
Para filtrar os índices no campoindexDetails, especifique as chaves de índice com a opção indexDetailsKey ou o nome do índice com a opção indexDetailsName. Para descobrir as chaves e nomes do índice, utilize db.collection.getIndexes().
Considerando o seguinte índice:
{ "ns" : "sample_mflix.movies", "v" : 2, "key" : { "_fts" : "text", "_ftsx" : 1 }, "name" : "cast_text_fullplot_text_genres_text_title_text", "weights" : { "cast" : 1, "fullplot" : 1, "genres" : 1, "title" : 1 }, "default_language" : "english", "language_override" : "language", "textIndexVersion" : 3 }
A operação a seguir filtra o documento indexDetails para um único índice usando a opção indexDetailsKey.
db.movies.stats( { 'indexDetails' : true, 'indexDetailsKey' : { '_fts' : 'text', '_ftsx' : 1 } } )
A operação a seguir filtra o documento indexDetails para um único índice usando a opção indexDetailsName.
db.movies.stats( { 'indexDetails' : true, 'indexDetailsName' : 'cast_text_fullplot_text_genres_text_title_text' } )
Ambas as operações retornam a mesma saída:
{ ok: 1, capped: false, ns: 'sample_mflix.movies', count: 21349, nindexes: 2, indexDetails: { cast_text_fullplot_text_genres_text_title_text: ... }, indexSizes: { _id_: ..., cast_text_fullplot_text_genres_text_title_text: ... }, scaleFactor: 1 }
Para uma explicação da saída, consulte os detalhes da saída.
Dica