JSON Schema 高级校验:自定义错误信息与跨字段约束
介绍 MongoDB 3.6+ 的 Schema Validation 功能,重点讲解如何使用 $jsonSchema 实现跨字段逻辑验证(如结束日期大于开始日期),以及如何自定义验证失败时的错误消息。 · 难度:入门 · +10XP
JSON Schema 高级校验:自定义错误信息与跨字段约束
MongoDB 的 Schema Validation 允许你在插入或更新时强制执行数据规则。本教程不仅覆盖基础的类型与必填校验,还深入演示如何利用 $expr 在验证规则中比较同一个文档中的不同字段,比如确保 'endDate' 晚于 'startDate'。同时你将学会通过 validationAction 和 validationLevel 控制严格程度,以及如何在驱动层面捕获校验失败的详细信息。
db.createCollection('events', {
validator: {
$jsonSchema: {
bsonType: 'object',
required: ['startDate', 'endDate'],
properties: {
startDate: { bsonType: 'date' },
endDate: { bsonType: 'date' }
},
$expr: { $lt: ['$startDate', '$endDate'] }
}
},
validationAction: 'error'
})