我正在使用nodejs和mongo db进行用户注册,问题是当我将所有数据插入到集合中时,它返回文档中的所有数据我想限制返回数据中的一些对象,例如在下面的用户对象示例中包含的密码,我应该限制,
newUser = new UserSchema({
firstName : firstName,
middleName : middleName,
lastName : lastName,
email : email,
location : location,
password : password,
createdDate :new Date(Date.now()).toISOString(),
role : "user"
})
password : { // in scehma
type: String,
select :false,
hide: true,
required:true
},
newUser.save((err,user) => {
if(err){
return false;
}else{
return user ; // user object should not have password in this
}
});
答案 0 :(得分:1)
只需将deleted_at
与您定义架构的密码字段放在一起。
喜欢:
select:false
所以它不会返回密码。
答案 1 :(得分:0)
mongoose-hidden这个插件对我有所帮助,但无论如何选择:false应该可以工作,如果没有其他的话经过长时间尝试你可以使用上面的插件
答案 2 :(得分:0)
您可以做的是在返回此用户之前,您可以删除从中提交的密码。如下所示
newUser.save((err,user) => {
if(err){
return false;
}else{
user = user.toObject();
delete user.password;
return user ; // Now user object do not have password field
}
});