OPTIONS
翻译或纠错本页面

修改索引

如果希望修改一条索引,您需要删除然后重建它。

1

建立一个唯一索引

使用 ensureIndex() 方法创建一个唯一索引。

db.orders.ensureIndex(
   { "cust_id" : 1, "ord_date" : -1, "items" : 1 },
   { unique: true }
)

该方法会返回一个文档,带有操作结果的状态。该方法只有当该索引不存在时才有建立一条索引。参见 创建一个索引索引创建教程 了解更多关于创建索引的信息。

2

尝试修改索引

不能 直接通过再次输入 ensureIndex() 命令并指定新的索引明细的方式来修改现有的索引。

例如,如下操作使用 ensureIndex() 方法,尝试取消对前文所创建的索引的 唯一性 的限制。

db.orders.ensureIndex(
   { "cust_id" : 1, "ord_date" : -1, "items" : 1 }
)

这个操作返回的状态文档表明发生错误。

3

删除索引。

您必须首先删除索引才能对它修改。

db.orders.dropIndex(
   { "cust_id" : 1, "ord_date" : -1, "items" : 1 }
)

该方法会返回一个文档,带有操作结果的状态。如果操作成功,文档中的 ok 键的值会是 1 。参见 删除索引 了解更多删除文档的信息。

4

重建没有 唯一性 限制的索引

重建没有 唯一性 限制的索引

db.orders.ensureIndex(
   { "cust_id" : 1, "ord_date" : -1, "items" : 1 }
)

该方法会返回一个文档,带有操作结果的状态。如果操作成功,文档中的 numIndexesAfter 键会比 numIndexesBefore 键大一。

←   删除索引 重建索引  →