db.collection.unhideIndex()

On this page本页内容

Definition定义

db.collection.unhideIndex()

mongo Shell Method

This page documents the mongo shell method, and does not refer to the MongoDB Node.js driver (or any other driver) method. 本页记录了mongo shell方法,未提及MongoDB Node.js驱动程序(或任何其他驱动程序)方法。For corresponding MongoDB driver API, refer to your specific MongoDB driver documentation instead.有关相应的MongoDB驱动程序API,请参阅特定的MongoDB驱动程序文档。

Unhides an existing index from the query planner. 从查询计划器中取消隐藏现有索引。Once unhidden, the indexes are immediately available for use.一旦取消隐藏,这些索引立即可供使用。

Syntax语法

db.collection.unhideIndex(<index>)

Parameters参数

The db.collection.unhideIndex() method takes the following parameter:db.collection.unhideIndex()方法采用以下参数:

Parameter参数Type类型Description描述
index string or document

Specifies the index to unhide from the query planner. 指定要从查询计划器中取消隐藏的索引。You can specify the index either by the index name or by the index specification document.可以通过索引名称或索引规范文档指定索引。

Tip

You can use the db.collection.getIndexes() method to find the index name or the index specification document.可以使用db.collection.getIndexes()方法查找索引名称或索引规范文档。

To unhide a text index, specify the index name.要取消隐藏text索引,请指定索引名称。

The db.collection.unhideIndex() is a mongo shell wrapper for the collMod command.db.collection.unhideIndex()collMod命令的mongo shell包装。

Behavior行为

Index Modifications Reset Statistics索引修改重置统计信息

Unhiding a hidden index resets its $indexStats.取消隐藏隐藏索引将重置其$indexStats

No-op

Unhiding an already unhidden index has no effect on the index. 取消隐藏已取消隐藏的索引对该索引没有影响。However, the operation will still generate an empty oplog entry.但是,该操作仍将生成一个空的oplog条目。

Required Access所需访问权限

If the deployment enforces authentication/authorization, you must have the collMod privilege in the collection’s database.如果部署强制进行身份验证/授权,则必须在集合的数据库中拥有collMod权限。

The built-in role dbAdmin provides the required privileges.内置角色dbAdmin提供所需的权限。

Example示例

The following example unhides an existing index.以下示例取消隐藏现有索引。

First, use db.collection.createIndex() to create a hidden index:首先,使用db.collection.createIndex()创建隐藏索引:

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

To verify, run db.collection.getIndexes() on the restaurants collection:

db.restaurants.getIndexes();

The operation returns the following information:该操作返回以下信息:

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

The index option hidden is only returned if the value is true.只有当index选项为hidden时,才会返回true

To unhide the index, you can specify either the index key specification document or the index name to the db.collection.unhideIndex() method. 要取消隐藏索引,可以指定索引键规范文档或db.collection.unhideIndex()方法的索引名。The following specifies the index name:以下内容指定了索引名称:

db.restaurants.unhideIndex( "borough_1_ratings_1" );

To verify, run db.collection.getIndexes() on the restaurants collection:

db.restaurants.getIndexes()

The operation returns the following information:该操作返回以下信息:

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

The index option hidden no longer appears as part of the borough_1_ratings_1 index since the field is only returned if the value is true.索引选项hidden不再作为borough_1_ratings_1索引的一部分出现,因为该字段仅在值为true时返回。