MongoDB getIndexes() 函数详解
1. getIndexes() 函数概述
getIndexes() 函数主要用于查询集合中索引的信息,包括索引名称、键值等。
该函数的语法如下所示:
db.collection.getIndexes()
2. getIndexes() 函数使用方法
2.1 查询集合中所有索引
使用 getIndexes() 函数可以查询集合中所有索引的信息,如下所示:
> use testdb
switched to db testdb
> db.book.getIndexes()
[
{
"v" : 2,
"name" : "_id_",
"key" : {
"_id" : 1
},
"ns" : "testdb.book"
}
]
上述代码中,首先通过 use 命令选择了 testdb 数据库,然后调用 getIndexes() 函数查询 book 集合中的所有索引信息。
可以看到,该函数返回一个包含索引信息的数组,其中包括了索引的版本号、名称、键值、以及所属集合的名称等信息。
还可以使用 forEach() 函数对该数组进行遍历,如下所示:
> db.book.getIndexes().forEach(printjson)
{
"v" : 2,
"name" : "_id_",
"key" : {
"_id" : 1
},
"ns" : "testdb.book"
}
2.2 查询集合中指定索引
使用 getIndexes() 函数还可以查询集合中指定索引的信息,如下所示:
> use testdb
switched to db testdb
> db.book.getIndexes()
[
{
"v" : 2,
"name" : "_id_",
"key" : {
"_id" : 1
},
"ns" : "testdb.book"
},
{
"v" : 2,
"name" : "name_1",
"key" : {
"name" : 1
},
"ns" : "testdb.book",
"background" : true
}
]
> db.book.getIndexes({name:1})
[
{
"v" : 2,
"name" : "name_1",
"key" : {
"name" : 1
},
"ns" : "testdb.book",
"background" : true
}
]
上述代码中,首先通过 use 命令选择了 testdb 数据库,然后调用 getIndexes() 函数查询 book 集合中的所有索引信息。可以看到,该集合包含了 id 和 name_1 两个索引。
接着,又调用了一次 getIndexes() 函数,并传入了一个查询参数 {name:1}。这样就只会返回包含 name_1 索引信息的数组。
3. 实例说明
3.1 实例一:查询集合中所有索引
假设现在有一个名为 testdb 的数据库,其中包含了一个名为 book 的集合。现在要查询该集合中所有的索引信息,可以采用以下代码:
> use testdb
switched to db testdb
> db.book.getIndexes()
执行上述代码后,会返回一个包含所有索引信息的数组。
3.2 实例二:查询集合中指定索引
假设现在要查询 book 集合中名为 name_1 的索引信息,可以采用以下代码:
> use testdb
switched to db testdb
> db.book.getIndexes({name:1})
执行上述代码后,会返回一个包含指定索引信息的数组。