Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 是否可以创建Mongoose钩子以将投影应用于所有查询_Mongodb_Mongoose_Hook - Fatal编程技术网

Mongodb 是否可以创建Mongoose钩子以将投影应用于所有查询

Mongodb 是否可以创建Mongoose钩子以将投影应用于所有查询,mongodb,mongoose,hook,Mongodb,Mongoose,Hook,我想防止用户的加密密码在每次用户请求其信息时通过网络发送。我知道在mongo我可以运用投影来实现这一点 db.users.findByID(_id, { password: 0 } ) 但是我更喜欢使用某种类型的.pre()钩子,将其应用于每个查询。这是可能的还是功能等效的?您可以配置一个字段,以便在默认情况下使用选择将其从查询中排除: let UserSchema = new Schema({ ... password : { type : String, select : fals

我想防止用户的加密密码在每次用户请求其信息时通过网络发送。我知道在mongo我可以运用投影来实现这一点

db.users.findByID(_id, { password: 0 } )

但是我更喜欢使用某种类型的
.pre()
钩子,将其应用于每个查询。这是可能的还是功能等效的?

您可以配置一个字段,以便在默认情况下使用
选择
将其从查询中排除:

let UserSchema = new Schema({
  ...
  password : { type : String, select : false },
  ...
});
如果确实需要返回字段,则可以基于每个查询覆盖该字段:

db.users.findByID(_id, { password: 1 } )
此处记录: