就我而言,我将文档保存到集合中,并将整个配置文件保存到变量中,然后将其发送回客户端。有没有一种方法可以用Mongoose直接对save()输出进行操作以删除不需要的字段,例如密码?
我知道我可以使用findOne()。select()查询集合以过滤掉不需要的字段。我可以做一个全新的对象,然后用简单的javascript将所有相关字段写入其中,但是我很好奇是否有猫鼬方式。
newUserProfile = await new User({
email,
password: hash,
}).save();
//is there a mongoose method I could chain to save to filter out unwanted fields?
答案 0 :(得分:0)
是的,可以从保存查询的响应中排除某些字段,例如passwordhash。
我们需要在模型文件中添加一些代码行,即
UserSchema.methods.toJSON = function(){
var obj = this.toObject();
delete obj.password
return obj
}
当我们将响应从控制器发送回客户端时,我们需要发送为。
res.json({data: savedObject});