mongodb - 是否可以创建一个 Mongoose Hook 以将投影应用于所有查询

标签 mongodb mongoose hook

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

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

但我更希望有某种 .pre() Hook ,它将应用于每个查询。这或功能等价物是否可能?

最佳答案

您可以使用 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

关于mongodb - 是否可以创建一个 Mongoose Hook 以将投影应用于所有查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44356206/

相关文章:

javascript - 使用 node.js 写入 MongoDB 副本集

javascript - 带 Mongoose 的 MongoDB - 在哪里放置语法以确保跨多个字段的索引?

node.js - 尝试从 Jest 单元测试连接到 mongo 时超时

node.js - 如何使用 stripe webhooks 更新用户的订阅日期?

git - Git 中的文件权限恢复

c++ - 如何在不注入(inject)任何 DLL 的情况下单击窗口时返回窗口句柄?

javascript - Sails.js 中两个模型的关联

c# - 如何使用 FakeItEasy 验证 FindOneAndUpdateAsync 方法针对伪造的 MongoCollection 运行?

javascript - 对象的 Mongoose 部分更新

c++ - 钩。 va_list 。可能吗?