在猫鼬中保存后配置填充的数据

configure populated data after saving in mongoose

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

只需将 select:false 与您定义架构的密码字段放在一起。

赞:

password : {type : String, select : false}

所以它不会 return 密码归档。

mongoose-hidden 这个插件帮助了我,但无论如何 select:false 应该可以工作,如果长时间尝试后还是不行,你可以使用上面的插件

您可以做的是在返回此用户之前删除从该用户归档的密码。喜欢下面

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