db.collection.getIndexes()
带驱动程序的 MongoDB
本页面提供 mongosh
方法的相关信息。要查看 MongoDB 驱动程序中的等效方法,请参阅编程语言的相应页面:
定义
db.collection.getIndexes()
返回一个包含文档列表的数组,这些文档会对集合上现有的索引进行标识和描述,包括隐藏的索引。
必须在集合上调用
db.collection.getIndexes()
。例如:db.collection.getIndexes() 将
collection
更改为要返回索引信息的集合的名称。
兼容性
此方法可用于以下环境中托管的部署:
MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
注意
所有 MongoDB Atlas 集群都支持此命令。有关 Atlas 对所有命令的支持的信息,请参阅不支持的命令。
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
行为
Atlas Search 索引
getIndexes()
不返回 Atlas Search 索引上的信息。有关 Atlas Search 索引的信息,请使用 $listSearchIndexes
。
客户端断开连接
从 MongoDB 4.2 开始,如果在操作完成之前,发出 db.collection.getIndexes()
的客户端断开连接,MongoDB 将使用killOp
将 db.collection.getIndexes()
标记为终止。
副本集节点状态限制
要在副本集成员上运行,listIndexes
操作需要成员处于 PRIMARY
或 SECONDARY
状态。如果节点处于其他状态,如 STARTUP2
,则操作错误。
通配符索引 (Wildcard Indexes)
从 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" } ]
索引信息包括用于创建索引的键和选项。仅当值为 true
时,索引选项 hidden
才可用。
有关键和索引选项的信息,请参阅db.collection.createIndex()
。