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

$indexStats (agregação)

Nesta página

  • Definição
  • Comportamento
  • Exemplo
$indexStats

Retorna estatísticas sobre o uso de cada índice para a coleção. Se estiver executando com ocontrole de acesso do , autentique como um usuário com pelo menos o papel clusterMonitor .

O estágio $indexStats recebe um documento vazio e tem a seguinte sintaxe:

{ $indexStats: { } }

Para cada índice, o documento de devolução inclui os seguintes campos:

Campo de Saída
Descrição

name

Nome do Índice.

Especificação da chave de índice.

Consultetambém: especificações.

O nome de host e porta do processo do mongod.

Estatísticas sobre o uso do índice:

  • ops é o número de operações que usaram o índice.

  • since é o momento a partir do qual o MongoDB coletou as estatísticas.

O nome do fragmento associado ao host

Disponível apenas para um cluster fragmentado.

O documento de especificação completo do índice, que inclui a chave do índice e as propriedades do índice.

A opção de índice hidden só será incluída se o valor for true.

Indica se o índice está sendo construído no momento.

Disponível apenas se true.

As estatísticas relatadas pelo campo acessos se aplicam apenas ao nó onde a query está sendo executada e incluem apenas o acesso ao índice acionado por solicitações do usuário. Não inclui operações internas, como exclusão por meio de índices TTL ou operações de migração e divisão em partes.

  • $indexStats deve ser o primeiro estágio em um pipeline de agregação.

  • $indexStats não é permitido em transações.

  • As estatísticas de um índice serão redefinidas na reinicialização do mongod ou no descarte de índice e recriação.

  • A modificação de um índice existente (consulte o comando collMod) redefine as estatísticas deste índice.

Por exemplo, uma collection orders contém os seguintes documentos:

db.orders.insertMany( [
{ _id : 1, item : "abc", price : 12, quantity : 2, type: "apparel" },
{ _id : 2, item : "jkl", price : 20, quantity : 1, type: "electronics" },
{ _id : 3, item : "abc", price : 10, quantity : 5, type: "apparel" }
] )

Criar os seguintes dois índices na coleção:

db.orders.createIndex( { item: 1, quantity: 1 } )
db.orders.createIndex( { type: 1, item: 1 } )
db.orders.createIndex(
{ price: 1 },
{ partialFilterExpression: { type: "apparel" } }
)

Execute algumas consultas em relação à coleção:

db.orders.find( { type: "apparel"} )
db.orders.find( { item: "abc" } ).sort( { quantity: 1 } )
db.orders.find( { price: { $gt: 10 } } )

Para visualizar estatísticas sobre o uso do índice na coleção orders, execute a seguinte operação de agregação:

db.orders.aggregate( [ { $indexStats: { } } ] )

A operação retorna um documento que contém estatísticas de uso para cada índice:

[
{
name: 'type_1_item_1',
key: { type: 1, item: 1 },
host: 'examplehost.local:27018',
accesses: { ops: Long("1"), since: ISODate("2024-05-02T15:07:21.420Z") },
shard: "shardA",
spec: { v: 2, key: { type: 1, item: 1 }, name: 'type_1_item_1' }
},
{
name: 'item_1_quantity_1',
key: { item: 1, quantity: 1 },
host: 'examplehost.local:27018',
accesses: { ops: Long("1"), since: ISODate("2024-05-02T15:07:21.254Z") },
shard: "shardA",
spec: { v: 2, key: { item: 1, quantity: 1 }, name: 'item_1_quantity_1' }
},
{
name: '_id_',
key: { _id: 1 },
host: 'examplehost.local:27018',
accesses: { ops: Long("0"), since: ISODate("2024-05-02T15:07:13.274Z") },
shard: "shardA",
spec: { v: 2, key: { _id: 1 }, name: '_id_' }
},
{
name: 'price_1',
key: { price: 1 },
host: 'examplehost.local:27018',
accesses: { ops: Long("0"), since: ISODate("2024-05-02T15:07:54.847Z") },
shard: "shardA",
spec: {
v: 2,
key: { price: 1 },
name: 'price_1',
partialFilterExpression: { type: 'apparel' }
}
}
]

Voltar

$group