dropIndexes()(批量删除索引)

最后更新:2026-10-09

dropIndexes()(批量删除索引)

dropIndexes()删除集合上的一个或多个索引,例如`db.users.dropIndexes()`删除全部非_id索引,也可传索引名数组只删指定索引。它会同时删除以指定名称为前缀的所有索引(如'age_1'会连同'age_1_text'一起删)。_id索引始终保留。这是清理测试环境索引的常用手段。

分类索引与管理
MongoDB 版本1.0+
示例语言mongosh (Shell)

📝 语法

db.<集合>.dropIndexes(<索引名数组>)

⚙️ 参数

索引名数组可选。要删除的索引名列表;省略则删除全部非_id索引。

返回值:包含删除数量和结果状态的信息对象。

▶ 示例

请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):

// dropIndexes:删除age和email上的两个索引
db.users.dropIndexes(['age_1', 'email_1'])

运行结果:

{ ok: 1, nIndexesWas: 4, nIndexesRemoved: 2 }

📌 注意事项

📚 相关教程

❓ 常见问题

QdropIndexes不传参数会删除所有索引吗?
A会删除除_id索引外的全部索引,操作前务必用getIndexes()确认列表。
QdropIndexes能指定删除哪几个吗?
A可以,传入索引名数组即可,例如db.users.dropIndexes(['age_1', 'email_1'])。
Q为什么dropIndexes删了age_1还会删别的索引?
AdropIndexes按名称前缀匹配,所有以'age_1'开头的索引(如'age_1_text')都会被一并删除。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏