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
readWritesobre 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.