Come si chiama effettivamente deleteOne()
per utente? Lo chiami sul modello utente o su un'istanza di esso?
Questo sembra rilevante secondo la documentazione per il parametro delle opzioni pre hook:
[options.document] «Boolean» Se name è un hook sia per il middleware del documento che per quello della query, impostare su true per essere eseguito sul middleware del documento. Ad esempio, imposta options.document su true per applicare questo hook a Document#deleteOne() anziché a Query#deleteOne().
https://mongoosejs.com/docs/api.html#schema_Schema-pre
Forniscono inoltre un esempio:
toySchema.pre('deleteOne', function() {
// Runs when you call `Toy.deleteOne()`
});
toySchema.pre('deleteOne', { document: true }, function() {
// Runs when you call `doc.deleteOne()`
});