Có, bạn có thể theo dõi số lần mỗi index được sử dụng trong truy vấn bằng $indexStats của MongoDB. Tạo index trên trường FirstName:
> db.demo508.createIndex({"FirstName":1});
{ "createdCollectionAutomatically" : true, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 }
Thêm tài liệu mẫu:
> db.demo508.insertOne({"FirstName":"John"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e883818987b6e0e9d18f578") }
> db.demo508.insertOne({"FirstName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e88381b987b6e0e9d18f579") }
> db.demo508.insertOne({"FirstName":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e88381f987b6e0e9d18f57a") }
Hiển thị dữ liệu:
> db.demo508.find();
Kết quả:
Sử dụng
$indexStatstrong aggregation để xem thống kê sử dụng index:> db.demo508.aggregate([{ $indexStats: { } }]).pretty();Kết quả hiển thị 2 index (_id_ mặc định và FirstName_1) với số lần truy cập (ops):
{ "name" : "_id_", "key" : { "_id" : 1 }, "host" : "DESKTOP-QN2RB3H:27017", "accesses" : { "ops" : NumberLong(0), "since" : ISODate("2020-04-04T07:32:27.394Z") } } { "name" : "FirstName_1", "key" : { "FirstName" : 1 }, "host" : "DESKTOP-QN2RB3H:27017", "accesses" : { "ops" : NumberLong(0), "since" : ISODate("2020-04-04T07:32:27.527Z") } }Giải thích: Trường
accesses.opscho biết số lần index được sử dụng. Giá trị 0 nghĩa là chưa có truy vấn nào dùng index này kể từ khi tạo (since). Chạy các truy vấnfind()có điều kiện trên FirstName sẽ làm tăng con số này.