Puedes hacerlo usando Mongoose 'validate'
middleware para que tenga acceso a todos los campos:
ASchema.pre('validate', function(next) {
if (this.startDate > this.endDate) {
next(new Error('End Date must be greater than Start Date'));
} else {
next();
}
});
Tenga en cuenta que debe envolver su mensaje de error de validación en un Error
de JavaScript objeto al llamar a next
para informar de un error de validación.