Como você realmente chama o
deleteOne()
para usuário? Você o chama no User Model ou em uma instância dele? Isso parece relevante de acordo com a documentação do parâmetro pre hook options:
[options.document] «Boolean» Se name for um gancho para middleware de documento e de consulta, defina como true para executar no middleware de documento. Por exemplo, defina options.document como true para aplicar este gancho a Document#deleteOne() em vez de Query#deleteOne().
https://mongoosejs.com/docs/api.html#schema_Schema-pre
Eles ainda fornecem um exemplo:
toySchema.pre('deleteOne', function() {
// Runs when you call `Toy.deleteOne()`
});
toySchema.pre('deleteOne', { document: true }, function() {
// Runs when you call `doc.deleteOne()`
});