Tengo el siguiente esquema largo:
const mySchema = new mongoose.Schema({ // some stuff, email, lastName ... etc firstName: { type: String, required: true, } password: { type: String, minLength: 8, maxLength: 120, } })
Y estoy dentro de una de las rutas, quiero guardar un documento que estoy editando, pero solo quiero saltarme una validación, no todo el esquema, quiero saltarme la validación del campo firstName
, pero quiero el resto de los campos a validar.
¿Hay algo que pueda hacer en Mongoose como:
userDoc.firstName = "new first name"; const newDoc = await userDoc.save({ validateBeforeSave: yes, but not for firstName })
¿Hay algo como eso?
De acuerdo con la documentación de Mongoose , existe un método llamado $ignore:
No ejecute la validación en esta ruta ni persista los cambios en esta ruta.
Ejemplo:
doc.foo = null; doc.$ignore('foo'); doc.save(); // changes to foo will not be persisted and validators won't be run