collMod(修改集合配置)

最后更新:2026-10-09

collMod(修改集合配置)

collMod修改已有集合的配置:TTL索引的过期时间(expireAfterSeconds)、模式验证器(validator)、索引选项等。命令文档第一个字段是集合名。注意:collMod只能调整已有集合,创建集合用create命令。修改validator只影响新写入与更新后的文档。

分类管理命令
MongoDB 版本1.0+
示例语言mongosh (Shell)

📝 语法

db.runCommand({ collMod: "<集合名>", validator: { ... } })
db.runCommand({ collMod: "sessions", index: { keyPattern: { lastAccess: 1 }, expireAfterSeconds: 3600 } })

⚙️ 参数

validator新的模式验证规则($jsonSchema等)
index索引配置修改,如TTL的expireAfterSeconds

返回值:返回ok: 1及被修改项的旧值/新值字段

▶ 示例

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

// collMod:修改TTL过期时间
use shop
db.runCommand({
  collMod: 'sessions',
  index: { keyPattern: { lastAccess: 1 }, expireAfterSeconds: 3600 }
})

运行结果:

{ expireAfterSeconds_old: 86400, expireAfterSeconds_new: 3600, ok: 1 }

📌 注意事项

📚 相关教程

❓ 常见问题

Q怎么修改TTL过期时间?
A用collMod配index.expireAfterSeconds,不用重建索引。
QcollMod能改哪些配置?
Avalidator、TTL过期时间、索引选项、分片集合扩容等。
Q修改validator会影响已有文档吗?
A不影响,只校验新写入与更新后的文档。
Web-Tutorial.com

Web-Tutorial 技术团队

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

100%

🙏 帮我们做得更好

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

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