¿Cómo llamas realmente al deleteOne()
? para el usuario? ¿Lo llamas en el modelo de usuario o en una instancia de él?
Esto parece relevante según la documentación para el parámetro de opciones de gancho previo:
[opciones.documento] «Booleano» Si el nombre es un gancho para el documento intermedio y la consulta, establecer en verdadero para ejecutar en el documento intermedio. Por ejemplo, establezca options.document en verdadero para aplicar este gancho a Document#deleteOne() en lugar de a Query#deleteOne().
https://mongoosejs.com/docs/api.html#schema_Schema-pre
Además proporcionan un ejemplo:
toySchema.pre('deleteOne', function() {
// Runs when you call `Toy.deleteOne()`
});
toySchema.pre('deleteOne', { document: true }, function() {
// Runs when you call `doc.deleteOne()`
});