Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Validate document trước khi insert/update trong MongoDB

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à update
  • validationLevel: "moderate": Chỉ validate insert và update có trường trong validator
  • validationAction: "error" (mặc định): Từ chối ghi
  • validationAction: "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...).