db.collection.getIndexes()
带有驱动程序的MongoDB
本页记录了mongosh
方法。要查看MongoDB驱动程序中的等效方法,请参阅您所使用的编程语言的相应页面
定义
db.collection.getIndexes()
返回一个数组,包含描述现有索引的文档列表,包括隐藏索引.
必须在集合上调用
db.collection.getIndexes()
。例如db.collection.getIndexes() 将
collection
更改为要返回索引信息的集合名称。
兼容性
此方法在以下环境中可用
MongoDB Atlas:云中MongoDB部署的完全托管服务
注意
此命令在所有MongoDB Atlas集群中受支持。有关Atlas对所有命令的支持信息,请参阅不受支持的命令。
MongoDB企业版:基于订阅的、自管理的MongoDB版本
MongoDB社区版:源代码可用、免费使用且自管理的MongoDB版本
行为
Atlas搜索索引
getIndexes()
不返回有关 Atlas搜索索引 的信息。有关Atlas搜索索引的信息,请使用 $listSearchIndexes
。
客户端断开连接
从MongoDB 4.2版本开始,如果执行 db.collection.getIndexes()
的客户端在操作完成前断开连接,MongoDB将使用 killOp
将 db.collection.getIndexes()
标记为终止。
副本集成员状态限制
要在副本集成员上运行,需要成员处于PRIMARY
或SECONDARY
状态。listIndexes
操作。如果成员处于其他状态,例如STARTUP2
,则操作会出错。
通配符索引
从MongoDB 6.3、6.0.5和5.0.16开始,wildcardProjection
字段存储索引投影的提交形式。早期版本的服务器可能以规范化的形式存储投影。
服务器以相同的方式使用索引,但您可能会注意到listIndexes
和db.collection.getIndexes()
命令的输出存在差异。
所需权限
当启用了访问控制时,要运行 db.collection.getIndexes()
,用户必须拥有对集合上 listIndexes
的权限。
内置角色 read
为数据库中的集合运行 db.collection.getIndexes()
提供了所需的权限。
输出
db.collection.getIndexes()
返回一个文档数组,包含集合的索引信息。例如
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" }, { "v" : 2, "key" : { "status" : 1 }, "name" : "status_1" }, { "v" : 2, "key" : { "points" : 1 }, "name" : "points_1" } ]
索引信息包括创建索引时使用的键和选项。索引选项 hidden
只有在值为 true
时才可用。
有关键和索引选项的信息,请参阅 db.collection.createIndex()
。