如何保护 Mongoose/MongoDB 中的密码字段,以便在填充集合时它不会在查询中返回?

2023-12-08

假设我有两个集合/模式。一个是带有用户名和密码字段的用户架构,然后,我有一个博客架构,它引用了作者字段中的用户架构。如果我用 Mongoose 做类似的事情

Blogs.findOne({...}).populate("user").exec()

我还将填充博客文档和用户,但如何防止 Mongoose/MongoDB 返回密码字段?密码字段经过哈希处理,但不应返回。

我知道我可以省略密码字段并在一个简单的查询中返回其余字段,但是如何使用 populate 来做到这一点?另外,有什么优雅的方法可以做到这一点吗?

另外,在某些情况下,我确实需要获取密码字段,例如当用户想要登录或更改密码时。


您可以使用以下命令更改架构定义级别的默认行为select字段属性:

password: { type: String, select: false }

然后你可以根据需要将其拉入find and populate通过字段选择进行调用'+password'。例如:

Users.findOne({_id: id}).select('+password').exec(...);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何保护 Mongoose/MongoDB 中的密码字段,以便在填充集合时它不会在查询中返回? 的相关文章

随机推荐

  • 如何在 WooCommerce 中禁用全局缺货

    我的网站每天都会添加新产品 为每个新产品和缺货产品持续选择 不允许缺货 选项是没有效率的 目前 数据库不断增长 包含 2 000 多种产品 我发现每天执行相同的流程很乏味 使用functions php文件 我可以实现一些php代码来禁止所
  • 将组计数列添加到 PySpark 数据帧

    我来自 R 和整洁宇宙由于 PySpark 具有卓越的 Spark 处理能力 我正在努力将某些概念从一个上下文映射到另一个上下文 特别是 假设我有一个如下所示的数据集 x y a 5 a 8 a 7 b 1 我想添加一列 其中包含每个的行数
  • Telerik MVC Grid 根据其他列值将列设为红色

    我有一个 Telerik MVC 网格 其中有两个字段 CustomerID and OrdersQuantity can go negative 我的网格看起来像这样 CustomerID OrdersQuantity 1 10 2 3
  • WinForms 中的自定义工具提示控件

    有没有一种简单的方法可以在 C WinForms 中创建和显示自定义工具提示控件 我目前的想法是 创建 Tooltip 的子类 重写OnPaint方法 设置它 作为父控件的工具提示 创建 form 和 show 的子类 手动 有什么想法吗
  • 如何用 igraph 绘制椭圆节点?

    SO 中似乎从未有人问过此类问题 但是 帮助页面igraph关于自定义节点形状相当模糊 有人可以提供自定义节点形状的完整示例吗igraph 你没说你用什么语言 所以我用R来回答 可以列出内置的形状shapes 不幸的是 椭圆不在其中 帮助页
  • 在新窗口中打开 HTML 元重定向

    我需要通过 HTML 元重定向网页并在新窗口中打开该页面 我怎样才能做到这一点
  • 代码在向 GCM 注册时获取唤醒锁时卡住

    我正在使用 GCM 为我的项目推送通知 但一直无法获取唤醒锁 日志消息 09 03 17 04 05 003 V GCMBroadcastReceiver 5772 onReceive com google android c2dm int
  • 使用WebAPI HttpResponseMessage时下载文件提示

    我的 API 中有一个返回 HttpResponseMessage 的方法 HttpGet HoodPeekAuthFilter public HttpResponseMessage GlobalOverview try StatsRepo
  • 管理页面会话中的可变错误

    我正在为网站创建登录名 我可以让下面的代码工作 它让我登录 但我无法启动会话 人们仍然可以通过 URL 访问我的页面 登录PHP
  • 在 Python 中将参数传递给 subprocess.run() [重复]

    这个问题在这里已经有答案了 我正在尝试使用 subprocess run 将参数传递给我在 Python 中运行的 bash 脚本 它是一个循环 运行从列表中传递参数的命令 我正在使用 Twint 库 但这部分并不重要 我指出这一点是为了让
  • 为什么我无法更改 python 窗口图标?

    我想用代码更改 pygame 窗口图标 import pygame pygame init screen pygame display set mode 800 600 pygame display set caption Snake Ga
  • Adobe Air ios 打包程序

    限制解除后 关于将 Adob e Air 应用程序部署到 ios 似乎存在很多混乱 在苹果取消限制之前 您必须完成此处记录的流程 http blogs adobe com cantrell archives 2010 09 packager
  • Pandas:将重复索引更改为分层索引

    请参阅下面的示例 给定一个索引有重复值的数据帧 如何获得一个具有分层索引的新数据帧 其第一级是原始索引 第二级是 0 1 2 n Example gt gt gt df 0 1 a 2 4 a 4 6 b 7 8 b 2 4 c 3 7 g
  • 从静态方法访问非静态枚举值

    public enum sEnum zero 0 one 1 public int x public static void a sEnum s x 3 if s sEnum one 为什么可以在这里检查枚举的值 因为没有使用 static
  • 转至收藏联系人的 Intent URI

    是否有 Intent URI 可以将您发送到手机最喜爱的联系人 就像内容 联系人 人员 将您发送给所有联系人 并且tel 将您发送至拨号器 EDIT 还有一种方法可以转到您的通话记录吗 收藏夹 com android contacts ac
  • ECGraph 无法在设备上运行,但可以在模拟器上运行

    是否有任何原因导致 ECGraph 在模拟器上运行良好 但当我在我的设备上运行它时却出现此错误 2012 08 24 01 57 18 543 Portfolio 3538 907 NSCFCalendar components fromD
  • 单击时显示子类别

    在我的 WordPress 网站上 我有一个菜单 显示每个类别的子类别 我想要做的是默认隐藏子类别 仅当我单击父类别时才显示它们 My HTML ul class scrolling cat mCustomScrollbar mCS 2 m
  • 如何解码 JSON 字符串?

    在服务器端 我有 2 个哈希值编码成 JSON 字符串吗 my j JSON gt new j j gt utf8 my data data gt users j gt encode user result data gt owners j
  • 样式取决于 Xamarin 表单中的屏幕方向

    我在手机和平 板电脑上进行造型 但如何添加方向选项 这都是纵向的 但我如何添加水平方向的选项
  • 如何保护 Mongoose/MongoDB 中的密码字段,以便在填充集合时它不会在查询中返回?

    假设我有两个集合 模式 一个是带有用户名和密码字段的用户架构 然后 我有一个博客架构 它引用了作者字段中的用户架构 如果我用 Mongoose 做类似的事情 Blogs findOne populate user exec 我还将填充博客文