validate()(校验集合完整性)
最后更新:2026-10-09
validate()(校验集合完整性)
validate()检查集合数据的结构完整性,例如`db.users.validate({ full: true })`。它扫描集合内部的BSON文档和索引,报告损坏或校验错误,常用于故障排查和升级前的健康检查。full: true会执行更深入的校验但耗时更长。返回结果含valid字段,true表示数据完整。
| 分类 | 索引与管理 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
db.<集合>.validate({ full: <bool> })
⚙️ 参数
| full | 可选。true执行更彻底的扫描(含索引检查),默认false。 |
|---|
返回值:包含valid、ns、nrecords等字段的校验报告。
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// validate:校验users集合的完整性
const report = db.users.validate({ full: false })
print('valid: ' + report.valid)
运行结果:
valid: true
📌 注意事项
- 大型集合上执行会占用较多资源,尽量低峰期运行
- full: true耗时更长但更可靠
- 发现损坏建议从备份恢复,不要自行修改数据文件
🏷️ 相关标签
💡 相关案例
📚 相关教程
❓ 常见问题
Qvalidate的full参数有什么作用?
Afull: true会额外深度校验索引等内部结构,检测更全面,但耗时明显增加。
Qvalidate返回的valid字段是什么?
Avalid表示集合数据是否通过校验,true为完整无误,false表示发现损坏。
Q集合校验发现损坏怎么办?
A立即停止写入,从最近备份恢复,并检查磁盘与硬件是否异常。