createIndex()(创建索引)

最后更新:2026-10-09

createIndex()(创建索引)

createIndex()为集合创建单个索引以加速查询,例如`db.users.createIndex({ age: 1 }, { unique: true })`。值1表示升序、-1表示降序,还支持text、hashed、2dsphere等索引类型。创建唯一索引可以强制字段值唯一。注意:在大集合上建索引会阻塞写入或耗时较长,生产环境建议在低峰期执行。

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

📝 语法

db.<集合>.createIndex(<索引键>, <选项>)

⚙️ 参数

索引键字段到排序方向的映射,如{age: 1, name: -1}。
选项可选。unique、sparse、name、background等选项。

返回值:新索引的名称字符串。

▶ 示例

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

// createIndex:为age字段创建升序索引并设为唯一
const idx = db.users.createIndex({ age: 1 }, { unique: true })
idx

运行结果:

'age_1'

📌 注意事项

📚 相关教程

❓ 常见问题

QcreateIndex怎么创建唯一索引?
A在选项里加{unique: true}即可,例如db.users.createIndex({email: 1}, {unique: true})。
QcreateIndex会阻塞查询吗?
A早期版本后台建索引仍会短暂影响写入;4.2+的混合构建对读写影响更小,但大集合仍建议低峰期操作。
Q怎么创建复合索引?
A索引键传多个字段,如db.users.createIndex({age: 1, name: -1}),查询时最左前缀字段会被利用。
Web-Tutorial.com

Web-Tutorial 技术团队

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

100%

🙏 帮我们做得更好

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

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