文档菜单
文档首页
/
MongoDB 手册
/

删除索引

在本页中

  • 关于此任务
  • 开始之前
  • 程序
  • 删除单个索引
  • 删除多个索引
  • 删除除_id索引外的所有索引_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中删除索引,请参阅MongoDB Compass中的在Compass中管理索引.

返回

指定名称