In MongoDB, you can use the getIndexes() method to get a list of indexes on a collection.
You can also loop through each collection in a database to return all indexes in the database.
List Indexes for a Specific Collection
The db.collection.getIndexes() method returns the indexes on a given collection. Substitute the collection part for the actual name of the collection.
More specifically, this method returns an array that holds a list of documents that identify and describe the existing indexes on the collection, including hidden indexes.
Example:
db.posts.getIndexes()
Result:
[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_"
},
{
"v" : 2,
"key" : {
"title" : 1
},
"name" : "title_1"
},
{
"v" : 2,
"key" : {
"tags" : 1
},
"name" : "tags_1"
}
]
In this example, the posts collection has three indexes.
List All Indexes in the Current Database
We can take the previous example a step further and have it loop through all the collections in the current database, listing out all indexes for each collection.
Example code:
db.getCollectionNames().forEach(function(collection) {
indexes = db.getCollection(collection).getIndexes();
print("Indexes on " + collection + ":");
printjson(indexes);
});
Example result:
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_" } ]
In this example, there are four collections: articles, employees, posts, and products, each with one or more indexes.