Estoy tratando de definir un campo obligatorio condicional para un modelo de mangosta de la siguiente manera:
const userSchema = new mongoose.Schema({ email: { type: String, }, emailVerified: { type: Boolean, required: true }, hash: { type: String, required: function() { if(!this.emailVerified) return true return false } }, oauth: { type: Boolean, required: true, }, password: { type: String, required: function() { if(this.oauth) return false return true } } }) export default mongoose.models.Users || mongoose.model('Users', userSchema) Mi intención es que solo quiero que se requiera el campo hash cuando emailVerified === false , y que solo se requiera el campo de password cuando oauth === true .
El caso es que cuando trato de agregar un documento en la colección de Users , aparece el siguiente error:
Error: Users validation failed: hash: Cannot read property 'emailVerified' of undefined, password: Cannot read property 'oauth' of undefinedAl mirar la documentación , entiendo que debería poder hacer referencia al modelo en su propia definición.