删除索引
您可以从集合中删除特定的索引。如果您看到性能影响,想要用新索引替换它,或者不再需要该索引,您可能需要删除索引。
要删除索引,请使用以下shell方法之一
方法 | 描述 |
---|---|
从集合中删除特定的索引。 | |
从集合中删除所有可删除的索引或指定的索引数组。 |
关于此任务
您可以在_id字段上删除任何非默认索引。要删除_id索引,您必须删除整个集合。
如果您在生产环境中删除了一个正在使用的索引,可能会遇到性能下降。在删除索引之前,请考虑隐藏索引以评估删除的影响。
开始之前
要删除索引,您需要其名称。要获取集合的所有索引名称,请运行getIndexes()
方法
db.<collection>.getIndexes()
步骤
在确定要删除哪些索引后,使用以下删除方法之一删除指定集合
删除单个索引
要删除特定的索引,请使用 dropIndex()
方法并指定索引名称
db.<collection>.dropIndex("<indexName>")
删除多个索引
要删除多个索引,请使用 dropIndexes()
方法并指定索引名称数组
db.<collection>.dropIndexes( [ "<index1>", "<index2>", "<index3>" ] )
删除除 _id
索引之外的所有索引
要删除除 _id
索引之外的所有索引,请使用 dropIndexes()
方法
db.<collection>.dropIndexes()
结果
删除索引后,系统会返回操作状态信息。
示例输出
... { "nIndexesWas" : 3, "ok" : 1 } ...
nIndexesWas
的值反映了删除索引前的索引数量。
要确认索引已被删除,运行db.collection.getIndexes()
方法
db.<collection>.getIndexes()
已删除的索引不再出现在getIndexes()
输出中。
了解更多
要了解如何管理现有索引,请参阅《管理索引》。
要了解如何在MongoDB Compass中删除索引,请参阅MongoDB Compass中的在Compass中管理索引.