删除索引

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

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

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

关于此任务

您可以删除字段上除默认索引之外的任何索引_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()输出中。

了解更多

Copyright © 上海锦木信息技术有限公司 all right reserved,powered by Gitbook文件修订时间: 2023-09-01 17:10:26

results matching ""

    No results matching ""