Schema validation với validator option khi tạo collection
MongoDB hỗ trợ validation tại cấp collection từ phiên bản 3.2. Sử dụng validator trong createCollection().
Tạo collection với validation
> db.createCollection("demo356", {
validator: {
$and: [
{ "FirstName": { $type: "string", $exists: true } }
]
}
});
Thử chèn dữ liệu
> db.demo356.insertOne({ "FirstName": "Chris" }); // Thành công
> db.demo356.insertOne({ "FirstName": 909 }); // LỖI
Lỗi validation
WriteError: Document failed validation
errmsg: "Document failed validation"
op: { "_id": ObjectId("..."), "FirstName": 909 }
Kiểm tra dữ liệu hợp lệ
> db.demo356.find();
{ "_id": ObjectId("..."), "FirstName": "Chris" }
Các option validation:
validationLevel: "strict"(mặc định): Validate insert và updatevalidationLevel: "moderate": Chỉ validate insert và update có trường trong validatorvalidationAction: "error"(mặc định): Từ chối ghivalidationAction: "warn": Chỉ log cảnh báo, cho phép ghi
Biểu thức validator: Hỗ trợ đầy đủ query operators ($type, $exists, $gt, $regex...).