Mongoose .find 查询结果包含查询元数据?不能只手动投影集合的每个属性,如何获取文档? [复制]

2024-03-31

我的文档数组看起来像这样 https://i.stack.imgur.com/UyXlm.png从后端检索后:

41:
$__: {strictMode: true, selected: {…}, shardval: null, saveError: null, validationError: {…}, …}
$init: true
$locals: {}
errors: {undefined: {…}, files: {…}}
isNew: false
_doc: {status: "Finished", isOnHold: false, requirements: Array(0), files: Array(0), reportFileIds: Array(1), …}
__proto__: Object

每个项目的实际文档位于 _doc 下。这是 mongoose.Find 查询的结果:

        let query = Job.find({
            _id: {
                $in: data.jobs
            }
        });

        let result = await query.exec();

现在,如果我在发送结果数组之前尝试获取该结果数组的项目,它看起来并不像前端实际建模的内容,这很奇怪。

有没有办法使用 mongoose.find 获取纯文档数组?我无法使用聚合查询,因为我不想手动投影每个可能的属性。

EDIT:

这不是大声喊叫的重复,扩展语法与它无关,你看到我在任何地方提到扩展语法了吗?这和mongoose驱动有关。

Edit2:我最终循环遍历数组并在每个项目上调用 .toObject :

        let jobs = await query.exec();
        let result = [];
        for (let doc of jobs) {
            result.push(doc.toObject());
        }
        return result;

Edit3:结束通话query.lean().exec()这做了正确的事。我过去根据 stackoverflow 示例使用精简部分作为参数,该示例可能已经过时,并且它只会返回文档的 ID。但像上面那样调用它效果很好。


Mongoose 始终返回一个实例 mongoose 对象,默认情况下该对象是不可变的。要获取纯 JS 对象,请尝试使用以下命令进行查询lean()像这样:

const query = Job.find({
    _id: {
        $in: data.jobs
    }
});

let result = await query.lean().exec();

您可以阅读有关精益的更多内容:https://mongoosejs.com/docs/tutorials/lean.html https://mongoosejs.com/docs/tutorials/lean.html

希望这可以帮助 :)

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

Mongoose .find 查询结果包含查询元数据?不能只手动投影集合的每个属性,如何获取文档? [复制] 的相关文章

  • 使用 mocha/chai 确保 REST API 提供文件?

    我想验证对 REST API 端点之一的调用是否正在提供文件 但我不确定如何进行操作 并且我没有看到任何相关示例 我确实看过文档 http chaijs com api bdd 但这对我没有多大帮助 服务器端代码本质上是 在 Express
  • ElasticSearch 和 PHP 中的多个字段搜索

    我正在使用最新版本弹性搜索 PHP https github com elasticsearch elasticsearch php以及最新版本的 MongoDB 和 ElasticSearch 我需要对可以包含一个或多个值的多个字段进行搜
  • 致命错误 - 未找到“Mongo”类

    我正在尝试执行此操作 但我收到以下错误 致命错误 在 C wamp www 中找不到类 Mongo Info PHP 5 38 MongoDB mongodb win32 i386 2 0 2 MongoDB PHP 驱动程序 mongo
  • Firebase + Node.js:错误:找不到 XMLHttpRequest 兼容性库

    Firebase Node js On iOS 安装的 Node js npm 安装 firebase save 节点测试 js 其中 test js 是一个非常简单的连接到 Firebase 的脚本 var firebase requir
  • Node.js - 使用 XHR 进行强大的上传

    我尝试实现一个简单的 XHR 上传到 Node js 通过强大 https github com felixge node formidable 问题是如果我设置 xhr setRequestHeader Content Type mult
  • 如何让 webpack 和 iis express 协同工作?

    I have Angular 2 和 Webpack 2 入门 https github com qdouble angular webpack2 starter它通过 webpack dev server 在节点上运行 我如何使用 web
  • 错误:键 $conditionalHandlers 不得以 '$' mongodb 开头

    我对 mongodb 特别是 Node js 的 mongoose 包有疑问 我有以下架构 var Schema mongoose Schema var location new Schema nomville type String re
  • 如何在 App-Engine 上运行的基于 Express 的 Node JS 应用程序中获取远程客户端的 IP 地址

    尝试获取 IP 时 所有标准标头值都包含不正确的值 req ip ffff 172 17 0 5 req headers x forwarded for 169 254 160 2 req socket remoteAddress ffff
  • Mongo $group 和 $project

    我正在尝试获取关键字计数parentId categioryId and llcId 我的数据库是 id ObjectId 5673f5b1e4b0822f6f0a5b89 keyword electronic content manage
  • axios onUploadProgress 和 onDownloadProgress 不适用于 CORS

    我有一个用 Node js 编写的服务器 以及一个在浏览器中运行的 Web 客户端 客户端应向服务器上传和下载一些文件 服务器并不是最初交付客户端的服务器 所以这里就出现了跨域的情况 服务器使用cors https www npmjs co
  • Dialogflow 简单的授权方法

    是否存在将 Dialogflow 代理连接到的简单方法node js代码 当我将此代码与从 Dialogflow 代理的设置页面获取的正确项目 ID 一起使用时 出现以下错误 错误 获取应用程序默认凭据时出现意外错误 无法加载默认凭据 浏览
  • require('babel/register') 不起作用

    我在客户端上有一个用 ES6 编写的同构应用程序Babel 转译器 http babeljs io 我希望我的 Express 服务器具有与客户端代码相同的 ES6 语法 很遗憾require babel register 不起作用 服务器
  • OSX 10.7.5 上的 node-gyp -- dyld:惰性符号绑定失败:找不到符号

    我搜索了很多 我发现与同一问题最接近的是这个 也没有答案 问题 未找到符号 libintl gettext https stackoverflow com questions 13759044 symbol not found libint
  • 如何修复 MongoClient is not a constructor 错误

    我刚刚学习 JavaScript 和 Nodejs 根据我在网上找到的一些代码 我编写了以下应用程序 当我尝试运行它时 我在第 9 行收到错误 其中显示 new MongoClient 错误提示 MongoClient 不是构造函数 您能解
  • 喜欢和不喜欢用户对产品的评论

    用户架构 var UserSchema new Schema review likes type String review dislikes type String 审查架构 var ReviewSchema new Schema pro
  • 无法根据TypeOrm中的外键过滤数据

    我使用 Nest Js PostgresQl 和 Typeorm 我在 typeorm 中有这两个实体 export class Meta PrimaryGeneratedColumn name metaId metaId number C
  • 如何使用 Node.js 解析 JSON? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我应该如何使用 Node js 解析 JSON 是否有一些模块可以安全地验证和解析 JSON 你可以简单地使用JSON parse h
  • 电子邮件模板中的剪贴板功能

    我想在电子邮件模板中发送优惠券代码 一个小按钮 用于复制剪贴板上输入元素的内容 通过电子邮件模板 我的意思是我想发送一封电子邮件 其中包含优惠券代码 并且电子邮件模板中会有一个按钮 允许我将其复制到剪贴板 这可以做到吗 任何帮助将不胜感激
  • MongoDB 存储过程等效项

    我有一个包含商店列表的大型 CSV 文件 其中一个字段是邮政编码 我有一个名为 ZipCodes 的独立 MongoDB 数据库 它存储任何给定邮政编码的纬度和经度 在 SQL Server 中 我将执行一个名为 InsertStore 的
  • NPM 如何处理版本冲突?

    由于 NPM 版本 3 节点模块和依赖项都安装在同一根级别 但是 如果我安装两个依赖于同一模块的两个不同版本的模块怎么办 例如 如果我安装异步npm i email protected cdn cgi l email protection

随机推荐