Docs 菜单

Docs 主页开发应用程序MongoDB Manual

db.collection.hideIndex()

在此页面上

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

重要

mongosh 方法

本页介绍了 mongosh方法。这不是数据库命令或特定语言驱动程序(例如 Node.js)的文档。

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

对于 MongoDB API 驱动程序,请参阅特定语言的MongoDB 驱动程序文档。

对于传统 mongo Shell 文档,请参阅相应 MongoDB Server 版本的文档:

mongo shell v4.4

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

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

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

db.collection.hideIndex(<index>)

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

范围
类型
说明
index
字符串或文档

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

提示

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

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

db.collection.hideIndex()是 命令的mongoshcollMod Shell 包装器。

要隐藏索引,必须将 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()