Node.js mongoose模式包含整个DB对象,而不是定义的模式对象

Node.js mongoose模式包含整个DB对象,而不是定义的模式对象,node.js,mongoose,Node.js,Mongoose,我为用户使用了两种模式。一个包含密码/salt,一个不包含用于返回前端的密码/salt。当我使用使用不带密码的模式的模型时,它仍然返回密码:/ 通用用户(用于发送到客户端) 验证用户(用于创建/更新/验证用户) 使用创建模型 var modelInstance=mongoose.model(“authUser”,authUserSchema,“users”) (在另一个文件中) var modelInstance=mongoose.model(“用户”,userSchema,“用户”) mode

我为用户使用了两种模式。一个包含密码/salt,一个不包含用于返回前端的密码/salt。当我使用使用不带密码的模式的模型时,它仍然返回密码:/

通用用户(用于发送到客户端)

验证用户(用于创建/更新/验证用户)

使用创建模型

var modelInstance=mongoose.model(“authUser”,authUserSchema,“users”)

(在另一个文件中)

var modelInstance=mongoose.model(“用户”,userSchema,“用户”)

modelInstance是使用 module.exports=模型实例

更新这个问题回答了我的问题。
你没有一个明确的问题,但我想你是在问是否可以限制它。默认情况下,答案是“否”

这里有一个插件: 但它真的过时了

创建包装器函数非常简单:

function safeUser(userModel) {
  return {
    username: userModel.username,
    email: userModel.email,
    firstName: userModel.firstName,
    lastName: userModel.lastName,
    createdOn: userModel.createdOn,
    updatedOn: userModel.updatedOn,
    scopes: userModel.scopes
  }
}

你坚持这两个吗?i、 e.每个用户有两个条目?两个模型都代表同一个集合
用户
它将返回字段,无论您从哪个模型执行查询。要限制字段阻止,请在从
userSchema
模型查询时选择
password
字段。还假设您在中的每个文件结构都遵循一个模式/模型node@ambianBeing这个链接正是我所需要的。我只是没有在前面寻找正确的答案:(但是有这样的问题是很好的,不是每个人都会以同样的方式处理问题。
module.exports = {    
    username: String,
    email: String,
    password: String,
    salt: String,
    firstName: String,
    lastName: String,
    createdOn: Date,
    updatedOn: Date,
    scopes: [String]
}
function safeUser(userModel) {
  return {
    username: userModel.username,
    email: userModel.email,
    firstName: userModel.firstName,
    lastName: userModel.lastName,
    createdOn: userModel.createdOn,
    updatedOn: userModel.updatedOn,
    scopes: userModel.scopes
  }
}