获取 MongoDB 中的索引列表
发布于
在MongoDB中,您可以使用该方法获取集合上的索引列表。getIndexes()
还可以遍历数据库中的每个集合以返回数据库中的所有索引。
列出特定集合的索引
该方法返回给定集合上的索引。将部件替换为集合的实际名称。db.collection.getIndexes()``collection
更具体地说,此方法返回一个数组,该数组保存一个文档列表,这些文档标识和描述集合上的现有索引,包括隐藏索引。
例:
db.posts.getIndexes()
输出:
[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_"
},
{
"v" : 2,
"key" : {
"title" : 1
},
"name" : "title_1"
},
{
"v" : 2,
"key" : {
"tags" : 1
},
"name" : "tags_1"
}
]在此示例中,集合有三个索引。posts
列出当前数据库中的所有索引
我们可以将前面的示例更进一步,让它遍历当前数据库中的所有集合,列出每个集合的所有索引。
示例代码:
db.getCollectionNames().forEach(function(collection) {
indexes = db.getCollection(collection).getIndexes();
print("Indexes on " + collection + ":");
printjson(indexes);
});
示例结果:
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” } ]
在此示例中,有四个集合:文章、员工、帖子和产品,每个集合都有一个或多个索引。