Validación de esquema

Haz que la colección rechace los documentos que no cumplen un esquema.

Haz que una colección rechace los documentos que no cumplen un esquema. Los validadores son los de MongoDB, con operadores de consulta o $jsonSchema.

Requisitos

  • Una conexión con un usuario que tenga readWrite sobre la base. Para cambiar el validador de una colección existente, dbAdmin.

Crear la colección con su validador

JavaScript
db.createCollection("clientes", {
  validator: {
    $jsonSchema: {
      bsonType: "object",
      required: ["email"],
      properties: { email: { bsonType: "string" } },
    },
  },
  validationLevel: "strict",
  validationAction: "error",
});

Cambiar el validador de una colección que ya existe

JavaScript
db.runCommand({ collMod: "clientes", validator: { email: { $type: "string" } }, validationLevel: "moderate" });

validationLevel: "moderate" comprueba los documentos nuevos y los que ya cumplían; validationAction: "warn" deja entrar el documento y registra el aviso.

Comprobar

Un insertOne sin email falla con DocumentValidationFailure (121) mientras validationAction sea error. Con validationAction: "warn", el mismo insertOne entra en la colección y queda registrado el aviso.

Problemas frecuentes

  • Los documentos antiguos que no cumplen el esquema siguen sin cumplirlo; con moderate, sus actualizaciones no se comprueban.

Ver también