如何在猫鼬中隐藏document.save()的回调中的字段?

时间:2019-04-15 19:50:07

标签: node.js mongoose

我要在创建用户后显示其数据,并使用以下代码在异步函数中返回用户:

const newUser = await user.save() return newUser

但是我不希望看到密码。

我已经遇到过this topic,其中也包含类似的问题,那里展示的最佳方法是将select: false放在模式定义的密码字段中。它适用于查找功能,但不适用于document.save()回调。

当前,我通过使用扩展操作并重置密码字段来实现所需的目标:

const newUser = await user.save() return { ...newUser.toObject(), password: null }

是否有更好的方法来实现这一目标?

1 个答案:

答案 0 :(得分:0)

使用lodash,最好使用干净的代码

return _.omit(newUser, ['password']);

或者您可以在架构级别使用后保存的第二件事

schema.post('save', function(doc) {
  delete doc.password;
});