保存在mongoose后配置填充数据

时间:2017-11-21 11:14:06

标签: node.js mongodb mongoose mongoose-schema

我正在使用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 
    }
});

3 个答案:

答案 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 
    }
});