Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

db.collection.hideIndex()

在此页面上

  • 定义
  • 兼容性
  • 语法
  • 行为
  • 访问控制
  • 例子
db.collection.hideIndex()

重要

mongosh 方法

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

对于数据库命令,请参阅使用 collMod命令设立的index.hidden集合选项。

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

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

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

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

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

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

注意

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

db.collection.hideIndex(<index>)

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

Parameter
类型
说明

index

字符串或文档

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

提示

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

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

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

要隐藏索引,必须将 featureCompatibilityVersion 设置为 5.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 索引选项。

后退

db.collection.getShardVersion