是否可以创建一个 Mongoose 挂钩以将投影应用于所有查询
Is it possible to create a Mongoose hook to apply a projection to all queries
我想防止每次用户请求他们的信息时通过网络发送用户的加密密码。我知道在 mongo 中我可以应用投影来实现此
db.users.findByID(_id, { password: 0 } )
但我更愿意使用某种 .pre()
挂钩,将其应用于每个查询。这或功能等价物是否可能?
您可以使用 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
我想防止每次用户请求他们的信息时通过网络发送用户的加密密码。我知道在 mongo 中我可以应用投影来实现此
db.users.findByID(_id, { password: 0 } )
但我更愿意使用某种 .pre()
挂钩,将其应用于每个查询。这或功能等价物是否可能?
您可以使用 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