Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

$indexStats (etapa de agregación)

$indexStats

Devuelve estadísticas sobre el uso de cada índice en la colección. Si se ejecuta con control de acceso, autenticarse como usuario con al menos el clusterMonitor rol.

La $indexStats el stage toma un documento vacío y tiene la siguiente sintaxis:

{ $indexStats: { } }

Para cada índice, el documento de retorno incluye los siguientes campos:

Campo de salida
Descripción

name

Nombre del índice.

Especificación de clave de índice.

Ver también: espec.

El nombre de host y el puerto del mongod proceso.

Métricas de uso del índice para el host asociado, incluidas:

  • opsNúmero de operaciones de usuario que utilizaron el índice. Esto no incluye operaciones internas como la eliminación mediante índices TTL ni la división y migración de fragmentos.

  • since:el momento desde el cual MongoDB recopiló las estadísticas

ADVERTENCIA: El campo accesses informa únicamente sobre las métricas de uso del índice para el nodo donde se ejecuta la query. Para obtener estadísticas más completas sobre el uso de índices, ejecuta $indexStats en cada nodo del clúster.

El nombre de la partición asociada con el host

Sólo disponible para un clúster fragmentado.

El documento de especificación detallada para el índice, que incluye la clave del índice y las propiedades del índice.

La opción de índice hidden solo se incluye si el valor es true.

Indica si el índice se está construyendo actualmente.

Solo disponible si true.

Las estadísticas reportadas por el campo accesos solo se aplican al nodo donde se ejecuta la query y solo incluyen el acceso al índice impulsado por solicitudes de usuario. No incluye operaciones internas como la eliminación mediante índices TTL ni operaciones de división y migración de fragmentos.

  • $indexStats Debe ser la primera etapa de un proceso de agregación.

  • $indexStats no se permite en las transacciones.

  • Estadísticas para un restablecimiento de índice en mongod reinicio o descarte y recreación de índice.

  • La modificación de un índice existente (ver comando collMod) restablece las estadísticas para ese índice.

Por ejemplo, una colección orders contiene los siguientes 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" }
] )

Crea los siguientes dos índices en la colección:

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

Ejecutar algunas consultas contra la colección:

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

Para ver las estadísticas sobre el uso del índice en la colección orders, ejecute la siguiente operación de agregación:

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

La operación devuelve un documento que contiene estadí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' }
}
}
]

Para utilizar el controlador de MongoDB Node.js para agregar una etapa de $indexStats a una canalización de agregación, utilice el Operador $indexStats en un objeto de canalización.

El siguiente ejemplo crea una etapa de pipeline que retorna un documento que contiene estadísticas de uso para cada índice de la colección. A continuación, el ejemplo ejecuta la pipeline de agregación:

const pipeline = [{ $indexStats: {} }];
const cursor = collection.aggregate(pipeline);
return cursor;

Volver

$group

En esta página