Trong MongoDB, bạn có thể sử dụng getIndexes()
để lấy danh sách các chỉ mục trên một tập hợp.
Bạn cũng có thể lặp qua từng bộ sưu tập trong cơ sở dữ liệu để trả về tất cả các chỉ mục trong cơ sở dữ liệu.
Liệt kê các chỉ mục cho một bộ sưu tập cụ thể
db.collection.getIndexes()
phương thức trả về các chỉ mục trên một tập hợp nhất định. Thay thế bộ sưu tập collection
một phần cho tên thực của bộ sưu tập.
Cụ thể hơn, phương thức này trả về một mảng chứa danh sách các tài liệu xác định và mô tả các chỉ mục hiện có trên bộ sưu tập, bao gồm cả các chỉ mục ẩn.
Ví dụ:
db.posts.getIndexes()
Kết quả:
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" }, { "v" : 2, "key" : { "title" : 1 }, "name" : "title_1" }, { "v" : 2, "key" : { "tags" : 1 }, "name" : "tags_1" } ]
Trong ví dụ này, posts
bộ sưu tập có ba chỉ mục.
Liệt kê tất cả các chỉ mục trong Cơ sở dữ liệu hiện tại
Chúng ta có thể xem xét ví dụ trước một bước xa hơn và để nó lặp lại qua tất cả các bộ sưu tập trong cơ sở dữ liệu hiện tại, liệt kê tất cả các chỉ mục cho mỗi bộ sưu tập.
Mã mẫu:
db.getCollectionNames().forEach(function(collection) {
indexes = db.getCollection(collection).getIndexes();
print("Indexes on " + collection + ":");
printjson(indexes);
});
Kết quả ví dụ:
Indexes on articles: [ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } ] Indexes on employees: [ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } ] Indexes on posts: [ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" }, { "v" : 2, "key" : { "title" : 1 }, "name" : "title_1" }, { "v" : 2, "key" : { "tags" : 1 }, "name" : "tags_1" } ] Indexes on products: [ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } ]
Trong ví dụ này, có bốn bộ sưu tập:bài báo, nhân viên, bài đăng và sản phẩm, mỗi bộ sưu tập có một hoặc nhiều chỉ mục.