Docs Menu

$indexStats (aggregation)

項目一覧

$indexStats

Returns statistics regarding the use of each index for the collection. If running with access control, authenticate as a user with at least the clusterMonitor role.

The $indexStats stage takes an empty document and has the following syntax:

{ $indexStats: { } }

For each index, the return document includes the following fields:

Output Field
説明

name

Index name.

インデックスキーの指定。

以下も参照してください。 spec.

The hostname and port of the mongod process.

Statistics on the index use:

  • ops is the number of operations that used the index.

  • since is the time from which MongoDB gathered the statistics.

The name of the shard associated with the ホスト

Only available for a sharded cluster.

The full specification document for the index, which includes the index key and index properties.

The index option hidden is only included if the value is true.

Indicates if the index is currently being built.

Only available if true.

The statistics reported by the accesses field only apply to the node where the query is being run and only include index access driven by user requests. It does not include internal operations like deletion via TTL Indexes or chunk split and migration operations.

  • Statistics for an index reset on mongod restart or index drop and recreation.

  • Modification of an existing index (see collMod command) resets the statistics for that index.

たとえば、コレクション orders に次のドキュメントが含まれているとします。

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" }
] )

Create the following two indexes on the collection:

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

コレクションに対していくつかのクエリを実行します。

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

To view statistics on the index use on the orders collection, run the following aggregation operation:

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

The operation returns a document that contains usage statistics for each index:

[
{
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' }
}
}
]

項目一覧