Mongoose - 使用聚合返回单个文档而不是文档数组

2024-02-05

在开始使用聚合来创建文档的时间戳之前,我使用 findOne 这样我可以获得单个对象,但现在我得到一个包含单个对象的数组。是否可以使查询返回单个对象而不是数组?先感谢您。

我正在使用的查询:

  News.aggregate()
    .match({ '_id': n })
    .project({ 'title': true, 'text': true, 'timestamp': { '$subtract': ['$date', new Date('1970-01-01')] } })

返回的是什么:

[
    {
        "_id": "5b9650beae847b1e5866cace",
        "title": "Notícia 2",
        "text": "Texto da Notícia 2",
        "timestamp": 1543807353257
    }
]

我希望得到的回报:

{
    "_id": "5b9650beae847b1e5866cace",
    "title": "Notícia 2",
    "text": "Texto da Notícia 2",
    "timestamp": 1543807353257
}

Aggregate方法返回一个数组;这是定义的行为。如果您想让这种行为适应您的方式,您可以重新创建自己的聚合函数;或在每次调用时处理数组;喜欢 :

async function aggregate(model, func) {
  const aggregateObject = func(News.aggregate());

  const ret = await aggregateObject.exec();

  // Deal with the fact there is no answer
  if (ret && ret.length) {
    return ret[0];
  }

  return false;
}

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

Mongoose - 使用聚合返回单个文档而不是文档数组 的相关文章

随机推荐

  • 如何将双精度数组传递给 C 中的函数?

    我一整天都在尝试解决这个问题 如何将双精度数组传递给函数 这是一个例子 int matrix 5 2 1 2 3 4 5 6 7 8 9 10 我希望将此矩阵传递给名为的函数eval matrix void eval matrix int
  • heroku - system.properties 和 java 版本

    我想将我的 java 7 应用程序部署到Heroku但我遇到了java版本的一些问题 I added system properties我的项目根目录中的文件 其中src and pom xml是 有内容java runtime versi
  • 如何在其他活动的 onResume 之后更新 ListView?

    我正在尝试创建一个应用程序 使用户能够创建事件 然后邀请参与者 因此 当用户进入 添加参与者 页面时 输入所有信息后 我尝试使用 onResume 直接返回 参与者列表 页面 但如何更新列表视图 我尝试使用notifyDataSetChan
  • 在某些计算机上应用程序无法加载 sqlite dll 文件

    我编写了一个使用 sqlite 的应用程序 它在most的系统 它是用 C 编写的 唯一的非框架程序集是 sqlite 它包含在 System Data SQLite dll 中 我以相同的方式在所有计算机上部署它 复制粘贴 exe 文件
  • OpenGL 纹理反转

    我正在尝试将网络摄像头的输入映射到 OpenGL 中的平面 我正在使用 OpenCV 从网络摄像头获取图像 我遇到的问题是纹理是垂直反转的 如果我的纹理是 v 则当前结果是 我想将从网络摄像头拍摄的图像调整到我的飞机上 2x2 它的左下角是
  • 在本地主机的 Android 应用程序中使用 Web 服务

    我正在尝试使用我从 Android 应用程序本地创建的 Web 服务 我的问题是 在我的 Android 应用程序中 在某个时刻 我必须提供一个带有如下参数的 URL where CalculatorWS是我使用的网络服务 add是其中的操
  • 如何使用 setuptools 在 Python 3.6 中的库发行版上包含父文件夹结构?

    我正在使用 setuptools 来分发 Python 库 我有以下目录结构 src production setup py prod library package1 package2 文件夹结构必须保持这样 因为将来会有多个库位于 sr
  • 如何选择目录中的第一个文件?

    我试图在不知道文件名的情况下逐个处理目录中的一些文件 所以我用过os listdir path 列出文件 所以我必须在每次调用函数时列出文件 问题是当有很多文件 比如 2000 个 时 列出每个文件需要很长时间 而我只想要第一个文件 有没有
  • Cassandra 3.0 不接受 Java 11 安装

    我正在尝试启动 Cassandra 3 但它给出了消息 Cassandra 3 0 及更高版本需要 Java 8u40 或更高版本 我安装了 Java 11 gt java version java version 11 0 11 2021
  • 收到推送后出现意外的系统错误

    今天 github com 出现了一些停机时间 直到我去推送大约十几个本地提交时我才意识到 https status github com messages https status github com messages https tw
  • 使用 xcopy 批量复制文件

    我已经在互联网上检查了一些示例 但我无法让我的 第一个 批处理文件工作 我想自动将文件从一个文件夹复制到另一个文件夹 但没有任何反应 echo off xcopy C source C target c d i y exit 你能看出有什么
  • AttributeError:模块“numpy”没有属性“__version__”

    我今天更新了计算机 当我尝试导入 pandas 时收到以下错误消息 import pandas as pd AttributeError module numpy has no attribute version 我已尝试以下链接中的建议
  • 如何从 OneDrive 下载文件

    我想从 One Drive 下载公共文件夹中的文件 但它不下载这些文件 这是场景 在公共文件夹中 我有另一个文件夹 其中包含多个文件 并且可以广泛访问 出于测试目的 我共享了公共文件夹中的所有文件 如果这是正确的共享方式 我不会共享 以下链
  • laravel 5.2 将数据传递到注册视图

    我正在使用 laravel 5 2 我编写了以下命令来自动添加身份验证的路由和视图 php artisan make auth 现在我想将数据传递到注册视图 但我找不到在哪里执行此操作 我认为应该使用如下代码 Route get regis
  • 停止重复 UIView 动画块?

    我有一个 UIView 动画块 它使用UIViewAnimationOptionRepeat UIViewAnimationOptionAutoReverse选项 因此它会继续进行 但在某些时候我需要停止动画 但更重要的是停止它并使视图返回
  • Angular 中使用 rxjs 的用户通知服务?

    我对反应式编程比较陌生 我正在尝试创建一个可以向用户显示通知的 Angular 服务 到目前为止 这就是我所拥有的 https stackblitz com edit angular rxjs notifications file app
  • 当半径增加时如何在 CLLocationManager 中为区域绘制固定圆

    我有一个要求 我必须在 CLLocationManager 中为区域绘制一个圆圈 我已经完成了本准则的要求 CLLocationDegrees latitude 37 33492222 CLLocationDegrees longitude
  • 如何在android中使用XMLStreamWriter编写XMl文件

    我想创建 XML 文件 这是我的以下代码 String fileName jasstech xml XMLOutputFactory xof XMLOutputFactory newInstance XMLStreamWriter xtw
  • glPopMatrix() 喊叫“setup_hardware_state 中不支持纹理格式”

    我正在尝试对 Linux 的私人视频播放器进行一些优化 旨在提高性能 因为播放 MP4 文件对 CPU 的占用很大 自从视频帧采用 YV12 编码并且 OpenGL 不提供显示此格式的本机方法 现在有一段代码在CPU上运行 在将图像发送到G
  • Mongoose - 使用聚合返回单个文档而不是文档数组

    在开始使用聚合来创建文档的时间戳之前 我使用 findOne 这样我可以获得单个对象 但现在我得到一个包含单个对象的数组 是否可以使查询返回单个对象而不是数组 先感谢您 我正在使用的查询 News aggregate match id n