スキーマレベルでこれを処理する別の方法は、モデルのtoJSONをオーバーライドすることです。
UserSchema.methods.toJSON = function() {
var obj = this.toObject()
delete obj.passwordHash
return obj
}
クライアントに提供したjsonからパスワードハッシュを除外する方法を探しているこの質問に出くわし、select: false
データベースから値をまったく取得しなかったため、verifyPassword関数が壊れました。