MongoDB Validation

Giới thiệu về MongoDB Validation

MongoDB là một cơ sở dữ liệu NoSQL phổ biến, được thiết kế để lưu trữ dữ liệu dưới dạng tài liệu JSON. Một trong những tính năng quan trọng của MongoDB là khả năng xác thực dữ liệu (Data Validation), cho phép người dùng định nghĩa các quy tắc để kiểm tra tính hợp lệ của dữ liệu khi nó được chèn hoặc cập nhật vào cơ sở dữ liệu. Điều này giúp đảm bảo rằng dữ liệu trong cơ sở dữ liệu tuân thủ các quy tắc và định dạng đã được định nghĩa.

Định nghĩa MongoDB Validation

Xác thực dữ liệu trong MongoDB cho phép bạn định nghĩa một cấu trúc nhất định cho các tài liệu trong một bộ sưu tập. Điều này bao gồm việc kiểm tra kiểu dữ liệu, yêu cầu trường bắt buộc và các điều kiện khác. Khi một tài liệu không thỏa mãn các quy tắc xác thực đã đặt ra, nó sẽ không được chèn hoặc cập nhật vào bộ sưu tập.

Cú pháp để định nghĩa Validation

Cú pháp để tạo hoặc thay đổi quy tắc xác thực trong MongoDB có thể được thực hiện thông qua lệnh db.createCollection() hoặc sử dụng lệnh collMod để chỉnh sửa một bộ sưu tập đã tồn tại. Quy tắc xác thực được định nghĩa bằng trường validator và có thể bao gồm một biểu thức MongoDB hoặc JSON Schema.

Ví dụ 1: Tạo bộ sưu tập với Validation cơ bản

db.createCollection("users", {
   validator: {
      $jsonSchema: {
         bsonType: "object",
         required: ["name", "email"],
         properties: {
            name: {
               bsonType: "string",
               description: "Tên người dùng phải là kiểu chuỗi và là bắt buộc"
            },
            email: {
               bsonType: "string",
               pattern: "^.+@.+\..+$",
               description: "Email phải là một chuỗi và có định dạng đúng"
            },
            age: {
               bsonType: "int",
               minimum: 0,
               description: "Tuổi phải là kiểu số nguyên không âm"
            }
         }
      }
   }
});

Trong ví dụ trên, chúng ta đã tạo một bộ sưu tập có tên là users và định nghĩa các quy tắc xác thực cho các trường name, email, và age. Trường nameemail là bắt buộc, trong khi trường age chỉ cần là số nguyên không âm.

Ví dụ 2: Cập nhật bộ sưu tập với quy tắc Validation

db.runCommand({
   collMod: "users",
   validator: {
      $jsonSchema: {
         bsonType: "object",
         properties: {
            status: {
               enum: ["active", "inactive"],
               description: "Trạng thái người dùng phải là 'active' hoặc 'inactive'"
            }
         }
      }
   }
});

Trong ví dụ này, chúng ta sử dụng lệnh collMod để thêm một quy tắc xác thực mới cho bộ sưu tập users, yêu cầu rằng trường status chỉ có thể nhận giá trị là active hoặc inactive.

Kết luận

MongoDB Validation giúp đảm bảo tính chính xác và đồng nhất của dữ liệu trong cơ sở dữ liệu. Bằng cách sử dụng JSON Schema, bạn có thể định nghĩa các quy tắc xác thực một cách linh hoạt và mạnh mẽ, giúp nâng cao chất lượng dữ liệu của ứng dụng của bạn. Hãy thử nghiệm với các quy tắc xác thực khác nhau để tìm ra cách phù hợp nhất cho nhu cầu của bạn!