Mongoose 仅​​选择在架构中明确声明的字段

2023-11-29

当使用 Mongoose 并查询数据库时,默认情况下会选择所有字段,并且我必须明确告诉 Mongoose 我不想选择哪些字段,例如,如果我不想要该字段user我应该做:

var schema = new Schema(
    {
    insertedAt: {type: String},
    tags: {type: String},
    user: {type:Object, select:false},
    connectedIds: {type:Array}
    }

问题是,字段可能会在 API 开发人员(我)不知情的情况下添加到数据库中。

是否可以告诉 Mongooseonly选择明确设置的字段?


有一种解决方法可以始终仅选择您的Schema。您要做的就是获取具有架构的所有字段paths财产并将其传递给您select()声明,如:

var fields = Object.keys(yourSchema.paths).join(' ');

//and when execute a query
YourModel.find({}).select(fields).exec(callback);

这样,即使有人向您的对象添加新字段,它也永远不会显示。缺点是您必须为每个查询执行此操作。

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

Mongoose 仅​​选择在架构中明确声明的字段 的相关文章

  • MongoDB:计算每个状态值更改之间的停留时间

    我想找出每次状态更改之间的停留时间 示例集合 1 id ObjectId 5e4889a7c7959f6a13039902 presenceStatus 0 createdAt ISODate 2020 02 16T00 14 35 121
  • 如何更新猫鼬嵌套数组文档[重复]

    这个问题在这里已经有答案了 我知道这个问题是重复的 但我不知道为什么我被困住了 Question 我怎样才能编辑 requirement update 数组文档 使用 find by id and requirement update id
  • MongoDB 空字符串值与 null 值

    在 MongoDB 生产中 如果某个键的值为空或未提供 可选 我应该使用空字符串值还是应该使用 null 作为值 1 使用空字符串与空字符串之间有什么优缺点吗 2 如果我将值设置为 undefined 以从现有文档中删除属性 与让属性值设置
  • 无法使用“in”运算符在中搜索“_id”

    我正在尝试使用 mongoose 和express 来获取现有的用户文档 但我只得到这个 webroot api domain com production node modules mongoose lib document js 162
  • Mongoose:find() 忽略重复值

    我有一只 聊天 猫鼬Schema它具有以下属性 const schema mongoose Schema recipient type mongoose Types ObjectId required true ref User sende
  • $lookup 多个级别而不使用 $unwind?

    我有以下收藏 场地集合 id ObjectId 5acdb8f65ea63a27c1facf86 name ASA College Manhattan Campus addedBy ObjectId 5ac8ba3582c2345af70d
  • Mongoose/Mongodb更新返回值及错误处理

    我对 Mongodb update 的返回值以及如何处理它的错误有点困惑 我使用 Node js Express js 和 Mongoose js 作为我的 Mongodb 驱动程序 当我浏览许多教程时 我看到的错误处理的唯一方法是 示例
  • 带有引用数组的 Mongoose 模型架构:CastError:值“[object Object]”转换为 ObjectId 失败

    我用express js 和mongoosejs 构建了一个博客网站 一篇文章可能有一个或多个类别 当我创建新文章时 出现错误 CastError Cast to ObjectId failed for value object Objec
  • 保存 Mongoose 文档时出现版本错误

    我有一个问题 不确定我是否做错了什么或者这是一个错误 我有一些产品 每一种都有一系列的变体 我想浏览一些数据并以这些变体加载它 但我遇到了许多 版本错误 找不到匹配的文档 错误 认为我遇到了竞争条件 我为我修改的每个变体依次保存相同的文档
  • 错误:集合方法聚合是同步的

    我正在尝试以下代码 const Conn mongoose createConnection mongodb 127 0 0 1 27017 db const addresses Conn collection users aggregat
  • 如何在没有 Express 的情况下通过 Mongoose 与 MongoDB 交互?

    我想要一个可以牢固掌握 CRUD 操作如何工作的环境 到目前为止 我一直在使用views看看数据是什么样子 但由于明显缺乏灵活性 这种方法并不是那么有洞察力 这就像在黑暗中开车一样 现在我希望能够通过 Mongoose 提供的功能来处理 M
  • Mongoose MongoDB:更新嵌套数组中的对象

    我有以下架构 var UserSchema new Schema emp no Number skills skill type Schema Types ObjectId ref Skill startDate type Date 然后我
  • mongoDB 对嵌套对象数组的聚合查找

    我有一个如下所示的集合 但我无法执行 lookup 并按开始时的方式返回它 但包含填充的字段 我已经对我想要填充的字段发表了评论 代理 missions clients client title Tourn e libre agent 5d
  • 在mongodb中编辑子文档N-N关系

    我有一个应用程序 其中article可以链接到多个平台 文章包含平台列表 平台也包含文章列表 有关更多详细信息 请查看我几个月前提出的 stackoverflow 问题 https stackoverflow com a 40377383
  • 将字符串数组转换为对象 Id 数组

    我有一个字符串数组 let stringObjectIdArray fssdlfsd343 43434234242 342424242 我想使用 mongoose 类型将字符串数组更改为对象 Id 数组 但它不起作用 它仅适用于字符串而不是
  • Nest.js - 在猫鼬模式中创建索引

    如何使用 Nest js 在猫鼬模式中创建属性索引 我尝试添加索引作为属性选项 但索引尚未创建 Schema export class Schema extends Document Prop id string Prop required
  • Mongoose 查找 array.length 大于 0 的所有文档并对数据进行排序

    我正在使用 mongoose 对 MongoDB 执行 CRUD 操作 这就是我的架构的样子 var EmployeeSchema new Schema name String description type String default
  • Mongoose 重复且架构键唯一

    我想让关键项目在该集合中独一无二 但我无法正常工作 我在这里发现了类似的问题 task js function make Schema mongoose var Tasks new Schema project type String in
  • 一次更新猫鼬中的多个文档

    我有一个用户文档数组 每个用户都有关注者属性 它是一个数字 我只想将此属性增加 1 然后立即更新数据库中的所有这些用户文档 更多细节 在请求中 我有一组用户 id 我使用这些 id 进行查询以获取一组用户文档 const users awa
  • 最小验证在 Mongoose 中不起作用

    我有一个架构 其中余额字段的声明如下所示 balance type Number min 0 default 30 我将 0 设置为最小值 这样余额就不会为负值 但是当我通过更新查询减少余额值时 余额结果是负值 我的更新查询 User up

随机推荐

  • 故事板prepareForSegue

    我有一个关于故事板转场的问题 平台是iOS 6 1 目标设备是 iPhone IDE是Xcode 4 5 2 我拥有的是 2 个 TableViewController 它们都有一个到同一个 ViewController 的 segue s
  • 如何使用 HttpWebRequest GET 方法与/ Content Type="application/json"

    这个非常简单 运行这个 Silverlight4 示例并注释掉 ContentType 属性 您将从我的服务以 xml 形式返回响应 现在取消注释该属性并运行它 您将得到一个 ProtocolViolationException 应该发生的
  • 将未定义数量的参数转发给另一个函数

    我将用一个接受任意数量函数的简单函数来解释这个问题 function abc args func get args Now lets use the first parameter in something In this case a s
  • 从 UIColor 创建 UIImage 用作 UIButton 的背景图像[重复]

    这个问题在这里已经有答案了 我正在创建这样的彩色图像 CGRect rect CGRectMake 0 0 1 1 UIGraphicsBeginImageContext rect size CGContextRef context UIG
  • Android Activity 作为内部类

    我正在尝试声明 AndroidActivity作为内部类 这Activity应该只由包含的类生成 并且需要访问它的一些私有方法 我真的不想公开的方法 当尝试生成它时 我得到了这个 java lang InstantiationExcepti
  • 使用 bash 用逗号分隔字段

    如何在字段之间放置逗号 输入数据 12123 QA test case 1 QA environment 12234 UAT test case 1 UAT environment 预期产出 12123 QA test case 1 QA
  • Puppeteer 选项卡仅在 youtube.com 上崩溃(噢,啪!STATUS_ACCESS_VIOLATION)

    我正在使用 puppeteer 从 Youtube 的搜索结果中获取屏幕截图 不幸的是 我无法让代码在此页面上运行 任何其他页面 还有 youtube 作品中的其他页面 当我使用 https www youtube com 作为网址时 我也
  • 使用 jquery 查找 ul li 列表中任何 li 块中最深的和最后一个 li?

    我有一个 HTML 列表 有几个嵌套的 ul 和 li 当我单击 li 时 我想找到该 li 标记中最深的项目 其中没有 ul 标记 并且 li 是该组的最后一项 例子例如 点击此链接 这是我的HTML code 这是我的方法 liclk
  • 带比较器的 Java 8 流过滤器

    我想过滤列表MyObject基于values场地 在这种情况下 如果有任何值MyObject getValues小于给定值value 则谓词为假 我还没有找到使用 Stream API 的方法 所以我尝试了ComparatorPredica
  • CodeSandbox.io 标签未加载图像

    我一直在尝试使用添加图像 img tag on CodeSandbox io 但是 每次我尝试添加它时 它都不会显示 只是默认为alt标签 显示山 我正在尝试将图像加载到与包含此 JS 文件的文件相同的文件夹中 下面是生成 HTML 的代码
  • 此集合实例上不存在属性 [title]

    我正在关注 Laracasts 的视频 基本模型 控制器 视图工作流程 我有一张表保存联系信息 CREATE TABLE about id int 10 UNSIGNED NOT NULL title varchar 500 COLLATE
  • Django 中的 DecimalField 验证

    我正在尝试验证DecimalField在姜戈中 在外壳中尝试 gt gt from django forms import DecimalField gt gt from django core validators import MaxV
  • WinSCP 命令行:在缓存错误中找不到主机密钥

    我第一次尝试从 WinSCP 命令行连接到 Unix 服务器 它关闭并出现以下错误 在缓存中找不到服务器的主机密钥 您无法保证 服务器是您认为的计算机 服务器的 rsa2 密钥指纹是 ssh rsa 1024 42 9e c7 f4 7f
  • 在 C++14 中使用 auto 作为返回值和参数类型

    在 Bjarne Stroustrup 的书 C 编程语言 的第四版中 我们读到 使用 auto 我们可以避免冗余和编写长类型名称 这在泛型编程中尤其重要 因为程序员很难知道对象的确切类型 并且类型名称可能很长 第 4 5 1 节 所以 了
  • iReport 中每个组的新页面

    我正在使用 iReport 5 6 0 我想为每个组创建新页面 例如我有桌子people i know Id Name State 1 Tom friends 2 Jim friends 3 Mike enemy 4 Alex friend
  • 使用 pyuic 将 .ui 转换为 .py?

    我正在使用 OSX 10 8 python 2 7 5 我刚刚使用 QtDesigner 构建了一个 GUI 并试图弄清楚如何在 Python 中使用它 我发现我必须使用 pyuic 以及如何在此处执行此操作 pyqt在mac osx雪豹中
  • asp.net通过kerberos将Windows身份验证集成到sql服务器

    请问有人可以提供一种简单 直接的方法来启用 ASP NET gt Kerberos gt Sql Server 吗 我们有客户端机器 gt 网络服务器 gt 数据库服务器 客户端坚持要求站点必须拉取 Windows 登录名而不是提示 因此需
  • Java 中的强制可克隆接口

    我在 Java 中遇到了一个小问题 我有一个名为 可修改 的界面 实现此接口的对象是可修改的 我还有一个 ModifyCommand 类 具有命令模式 它接收两个可修改对象 以进一步在列表中交换它们 这不是我的问题 我已经设计了该解决方案
  • 如何使用 FormData API 发出 POST 请求

    我想使用 http post 将用户名和 form data 对象传递到 php 文件 当我只传递 form data 时 它可以上传我的图片 但我还想传递一些其他信息 例如用户名 请帮助我如何在 http post 中传递其他数据 这是我
  • Mongoose 仅​​选择在架构中明确声明的字段

    当使用 Mongoose 并查询数据库时 默认情况下会选择所有字段 并且我必须明确告诉 Mongoose 我不想选择哪些字段 例如 如果我不想要该字段user我应该做 var schema new Schema insertedAt typ