我希望每次用户请求信息时都阻止用户的加密密码通过网络发送。我知道在mongo我可以应用投影来实现这个目标
db.users.findByID(_id, { password: 0 } )
但是我希望有一些.pre()
钩子将它应用于每个查询。这个或功能等同物可能吗?
答案 0 :(得分:2)
您可以配置一个字段,以便默认使用select
从查询中排除:
let UserSchema = new Schema({
...
password : { type : String, select : false },
...
});
如果确实需要返回字段,则可以在每个查询的基础上覆盖它:
db.users.findByID(_id, { password: 1 } )
此处记录:http://mongoosejs.com/docs/api.html#schematype_SchemaType-select