对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

db. 集合.hideIndex()(mongosh方法)

重要

mongosh 方法

本页面提供 mongosh 方法的相关信息。这不是数据库命令或特定语言驱动程序(例如 Node.js)的相关文档。

有关该数据库命令,请参阅使用 collMod 命令设置的 index.hidden 集合选项。

如需了解 MongoDB API 驱动程序,请参阅特定语言的 MongoDB 驱动程序文档。

db.collection.hideIndex()

向查询规划器隐藏现有索引。向查询规划器隐藏的索引不会作为查询计划选择的一部分进行求值。

通过向规划器隐藏索引,您可以在不实际删除索引的情况下评估删除索引的潜在影响。 如果影响是负面的,您可以取消隐藏索引,而不必重新创建已删除的索引。 由于索引在隐藏期间得到完全维护,因此一旦取消隐藏,索引就立即可用。

有关详情,请参阅隐藏索引

此方法可用于以下环境中托管的部署:

  • MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务

注意

所有 MongoDB Atlas 集群都支持此命令。有关 Atlas 对所有命令的支持的信息,请参阅不支持的命令

db.collection.hideIndex(<index>)

db.collection.hideIndex()方法采用以下参数:

Parameter
类型
说明

index

字符串或文档

指定要向查询规划器隐藏的索引。可以通过索引名称或索引规范文档来指定索引。

要查找索引名称或索引规范文档,可以使用db.collection.getIndexes()方法。

要隐藏文本索引,请指定索引名称。

db.collection.hideIndex() mongoshshellcollMod命令的 包装器。

要隐藏索引,必须将 featureCompatibilityVersion 设置为 6.0 或更大。

您无法隐藏 _id 索引。

隐藏未隐藏的索引会重置其 $indexStats

隐藏已隐藏的索引对该索引没有影响。但是,该操作仍然会生成一个空的 oplog 条目。

如果部署强制执行身份验证/授权,则您必须在集合的数据库中拥有 collMod 权限。

内置角色dbAdmin提供所需的特权。

以下示例隐藏现有索引。

首先,使用 db.collection.createIndex() 创建一个不隐藏的索引:

db.restaurants.createIndex( { borough: 1, ratings: 1 } );

要隐藏索引,您可以为db.collection.hideIndex()方法指定索引键规范文档或索引名称。 指定索引名称如下:

db.restaurants.hideIndex( "borough_1_ratings_1" );

要进行验证,请在 restaurants 集合上运行 db.collection.getIndexes()

db.restaurants.getIndexes();

操作会返回以下信息:

[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_"
},
{
"v" : 2,
"key" : {
"borough" : 1,
"ratings" : 1
},
"name" : "borough_1_ratings_1",
"hidden" : true
}
]

仅当值为 true 才返回 hidden 索引选项。