On this page本页内容
$indexStats
Returns statistics regarding the use of each index for the collection. 返回有关集合中每个索引使用情况的统计信息。If running with access control, the user must have privileges that include 如果使用访问控制运行,用户必须具有包括indexStats
action.indexStats
操作的权限。
The $indexStats
stage takes an empty document and has the following syntax:$indexStats
阶段取用两个空文档,并且语法如下:
{ $indexStats: { } }
For each index, the return document includes the following fields:对于每个索引,返回文档包括以下字段:
name | |
key |
|
host |
|
accesses |
|
shard |
|
spec |
|
building |
|
Statistics for an index will be reset on 在mongod
restart or index drop and recreation.mongod
重新启动或索引删除和重新创建时,将重置索引的统计信息。
The statistics reported by the accesses field only includes index access driven by user requests. 访问字段报告的统计信息仅包括由用户请求驱动的索引访问。It does not include internal operations like deletion via TTL Indexes or chunk split and migration operations.它不包括内部操作,如通过TTL索引删除或块分割和迁移操作。
$indexStats
$indexStats
is not allowed in transactions.$indexStats
。Modification of an existing index (see 修改现有索引(请参阅collMod
command) resets the statistics for that index.collMod
命令)将重置该索引的统计信息。
For example, a collection 例如,集合orders
contains the following documents:orders
包含以下文档:
{ "_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 } )
Run some queries against the collection:对集合运行一些查询:
db.orders.find( { type: "apparel"} ) db.orders.find( { item: "abc" } ).sort( { quantity: 1 } )
To view statistics on the index use on the 要查看orders
collection, run the following aggregation operation:orders
集合上索引使用的统计信息,请运行以下聚合操作:
db.orders.aggregate( [ { $indexStats: { } } ] )
The operation returns a document that contains usage statistics for each index:该操作返回一个文档,其中包含每个索引的使用统计信息:
{ "name" : "item_1_quantity_1", "key" : { "item" : 1, "quantity" : 1 }, "host" : "examplehost.local:27018", "accesses" : { "ops" : NumberLong(1), "since" : ISODate("2020-02-10T21:11:23.059Z") }, "shard" : "shardA", // Available starting in MongoDB 4.2.4 if run on sharded cluster "spec" : { // Available starting in MongoDB 4.2.4 "v" : 2, "key" : { "item" : 1, "quantity" : 1 }, "name" : "item_1_quantity_1" } } { "name" : "item_1_price_1", "key" : { "item" : 1, "price" : 1 }, "host" : "examplehost.local:27018", "accesses" : { "ops" : NumberLong(1), "since" : ISODate("2020-02-10T21:11:23.233Z") }, "shard" : "shardA", // Available starting in MongoDB 4.2.4 if run on sharded cluster "spec" : { // Available starting in MongoDB 4.2.4 "v" : 2, "key" : { "item" : 1, "price" : 1 }, "name" : "item_1_price_1" } } { "name" : "item_1", "key" : { "item" : 1 }, "host" : "examplehost.local:27018", "accesses" : { "ops" : NumberLong(0), "since" : ISODate("2020-02-10T21:11:22.947Z") }, "shard" : "shardA", // Available starting in MongoDB 4.2.4 if run on sharded cluster "spec" : { // Available starting in MongoDB 4.2.4 "v" : 2, "key" : { "item" : 1 }, "name" : "item_1" } } { "name" : "_id_", "key" : { "_id" : 1 }, "host" : "examplehost.local:27018", "accesses" : { "ops" : NumberLong(0), "since" : ISODate("2020-02-10T21:11:18.298Z") }, "shard" : "shardA", // Available starting in MongoDB 4.2.4 if run on sharded cluster "spec" : { // Available starting in MongoDB 4.2.4 "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } }