Docs 菜单
Docs 主页
/
MongoDB Manual
/

删除索引

在此页面上

  • 关于此任务
  • 开始之前
  • 步骤
  • 删除单个索引
  • 删除多个索引
  • 删除除 _id索引之外的所有索引
  • 结果
  • 了解详情

您可以从集合中删除特定索引。如果发现对性能有负面影响,您想用新索引替代特定索引,或者不再需要该索引,则可删除。

要删除索引,请使用以下 Shell 方法之一:

方法
说明
db.collection.dropIndex()
从集合中删除特定索引。
从集合或索引数组中删除所有可移动索引(如果指定)。

您可以删除 _id 字段上的默认索引之外的任何索引。如要删除 _id 索引,您必须删除整个集合。

删除生产环境中频繁使用的索引可能会导致性能下降。在删除索引之前,请考虑隐藏索引以评估删除索引的潜在影响。

要删除索引,您需要知道它的名称。要获取集合的所有索引名称,请运行 getIndexes() 方法:

db.<collection>.getIndexes()

确定要删除的索引后,请对指定的集合使用下列一种删除方法:

要删除特定索引,请使用 dropIndex() 方法并指定索引名称:

db.<collection>.dropIndex("<indexName>")

要删除多个索引,请使用 dropIndexes() 方法并指定索引名称数组:

db.<collection>.dropIndexes( [ "<index1>", "<index2>", "<index3>" ] )

要删除 _id 索引之外的所有索引,请使用 dropIndexes() 方法:

db.<collection>.dropIndexes()

删除索引后,系统返回有关操作状态的信息。

示例输出:

...
{ "nIndexesWas" : 3, "ok" : 1 }
...

nIndexesWas 的值反映了删除索引前的索引数。

要确认索引已删除,请运行 db.collection.getIndexes() 方法:

db.<collection>.getIndexes()

删除的索引不再显示在 getIndexes() 输出中。

  • 要了解有关管理现有索引的更多信息,请参阅管理索引

  • 要了解如何在 MongoDB Compass 中移除索引,请参阅管理 Compass 中的索引。

后退

指定名称