当一个字段是日期字段时,如何在 MongoDB 中按多个字段进行分组

2023-12-21

我对 MongoDB 还很陌生,我正在尝试弄清楚当其中一个字段是计算日期字段时如何按多个字段进行分组:

我的数据如下(简化):

{
    "_id" : ObjectId("52d6ed19e4b0a491abb53ff2"),
    "build_duration" : 667075,
    "build_number" : 40,
    "build_result" : "SUCCESS",
    "build_timestamp" : ISODate("2014-01-15T20:07:27.324Z"),
    "job_name" : "ABC"
}

我知道我可以做这样的事情来按多个字段进行分组:

db.builds.aggregate(
   { $group: { _id: { build_result: "$build_result", job_name: "$job_name"},
           build_duration: { $avg: "$build_duration" } } }
)

但是,如果我尝试使用 $dayOfYear 函数对日期进行分组,则会收到错误:

db.builds.aggregate(
   { $group: { _id: { build_result: "$build_result", $dayOfYear: "$build_timestamp"},
           build_duration: { $avg: "$build_duration" } } }
)

Error:

Error: Printing Stack Trace
    at printStackTrace (src/mongo/shell/utils.js:37:15)
    at DBCollection.aggregate (src/mongo/shell/collection.js:897:9)
    at (shell):1:11
Thu Jan 16 13:34:08.036 aggregate failed: {
    "errmsg" : "exception: the operator must be the only field in a pipeline object (at '$dayOfYear'",
    "code" : 15983,
    "ok" : 0
} at src/mongo/shell/collection.js:898

所需的输出将是按日期和 build_result 以及 build_duration 平均值进行分组。提前致谢。


您需要使用$dayOfYear对象作为新字段的值_id, 像这样:

db.builds.aggregate(
    { $group: { 
        _id: { 
            build_result: "$build_result", 
            dayOfYear: { $dayOfYear: "$build_timestamp" }
        },
        build_duration: { $avg: "$build_duration" } 
    } }
)

Output:

{
  "result": [
    {
      "_id": {
        "build_result": "SUCCESS",
        "dayOfYear": 15
      },
      "build_duration": 667075
    }
  ],
  "ok": 1
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当一个字段是日期字段时,如何在 MongoDB 中按多个字段进行分组 的相关文章

  • MongoDB 将数字转换为科学计数法的字符串

    我想获得完整的号码String 但反而 1490650000000 它返回科学计数法 1 49065e 12 这是我尝试转换它的方法 substr myNumber 0 1 有什么想法如何预防吗 Note 我使用的是v3 6 无法升级使用
  • Flask 不加载配置

    我在 Flask 中加载配置时遇到问题 from config import config DevelopmentConfig TestingConfig ProductionConfig def create app config nam
  • 清理 MongoDB 的输入

    我正在为 MongoDB 数据库程序编写 REST 接口 并尝试实现搜索功能 我想公开整个 MongoDB 接口 我确实有两个问题 但它们是相关的 所以我将它们放在一篇文章中 使用 Python json 模块解码不受信任的 JSON 是否
  • mongoengine 操作的原子性如何

    我正在尝试在对象的状态之间转换 如下所示 User objects id user id state STATE WAITING update one set state STATE FINISHED The question是 是否存在这
  • Spring Data mongodb:添加 MongoDb 访问凭据

    我的 Spring 应用程序中有以下工作配置
  • MongoDB 中两个集合之间的 Diff()

    我做过研究 如果这是一个重复的问题 我很抱歉 但其他问题的解决方案并不适合我 因此 我提出了一个新问题 使用 Javascript 比较两个集合的最佳方法是什么 我有数千个这样的 Mongo 文档格式的标头 url google com h
  • mongodb 中的 Redact 对我来说似乎很晦涩

    我现在正在与 redact 作斗争 我不确定是否理解它 我刚刚阅读了文档并尝试在集合成绩上使用 redact 它来自 mongodb 在线培训 grades 集合中的文档如下所示 id ObjectId 50b59cd75bed76f465
  • MongoDB 查询 IN 对象数组

    我在检索两个集合之间的信息时遇到问题 第一个集合存储员工信息 id ObjectId 4f9643967f8b9a3f0a00005a birth date 1963 09 09 departments departments id Obj
  • 如何确定 STARTUP2 BTree Bottom Up 步骤的总体进度?

    确定新次要成员的初始同步 STARTUP2 的索引构建阶段的总体进度的好方法是什么 在我的例子中 索引构建阶段需要很长时间 几天 如果能够看到它在这个过程中的进度 那就太好了 日志输出如下所示 Tue Jan 27 20 04 45 006
  • MongoDB 查询数组以获取精确的元素匹配,但可能是无序的

    我在 MongoDB 中有一个文档 如下所示 users 2 3 4 我尝试通过匹配用户数组来查询该文档 db things find users all 2 3 4 该查询有效 但也会返回此文档 users 2 3 4 5 最后一个要求是
  • 如何使用 ejs post 表单更新 node.js 和 MongoDB 应用程序中的现有用户数据?

    我对 javascript 非常陌生 发现 Brad Traversy 的视频 Node js with Passport Authentication 并关注了他的视频 它对我有用 但后来我想添加更多 我创建了自定义仪表板和导航 我添加的
  • Node.js 找不到模块“mongodb”

    我正在经历我的第一个 Node js 项目 我已经安装了 mongodb 有一个 server js 文件 当我尝试运行它时 出现此错误 module js 340 throw err Error Cannot find module mo
  • 用于高效大规模图遍历的数据库

    我有一个大型二分有向图数据集 约 2000 万个元素 在当前的使用中 我运行的遍历算法每次运行约 500 000 个节点 这些算法有效 但历史上运行的是从文本文件加载到内存的数据 文本文件似乎是一个不好的方法 所以我将数据作为邻接列表传输到
  • Mongoose:保存时根据父字段值设置子文档字段值

    这几乎肯定在其他地方有所涉及 但是 如果我有一个带有嵌入子文档的单一架构 如下所示 var ChildSchema new Schema name type String trim true user type String trim tr
  • MongoDb Spring 在嵌套对象中查找

    我正在使用 Spring Data Mongodb 和这样的文档 id ObjectId 565c5ed433a140520cdedd7f attributes 565c5ed433a140520cdedd73 333563851 list
  • MongoDB 2dsphere 索引失败(几何格式错误?)

    我目前正在尝试构建 2dsphere 索引 但创建似乎失败 索引创建失败的文档是有效的 geojson 根据 geojsonlint 据我所知 它遵循 MongoDB 多边形 规则 我将不胜感激任何帮助 因为我无法弄清楚为什么索引创建似乎失
  • 为什么MongoDB不使用复合索引进行查询?

    以下是我对此集合的复合索引和单一索引 db Collection getIndexes 1 v 2 key id 1 name id ns service Collection 2 v 2 key FirstId 1 SecondId 1
  • MongoDB 全文搜索分数“分数是什么意思?”

    我正在为我的学校开发一个 MongoDB 项目 我有一个句子集合 我进行正常的文本搜索以查找集合中最相似的句子 这是基于评分的 我运行这个查询 db sentences find text search any text score met
  • mongodb-org 与 mongodb-10gen-server 冲突

    我在 CentOS 上使用 yum 安装 Mongo 时遇到问题 我已经关注了这些说明 http docs mongodb org manual tutorial install mongodb on red hat centos or f
  • 如何通过引用文档查询嵌入文档?

    我正在使用 Doctrine ODM 但在通过引用文档查询嵌入文档时遇到问题 考虑以下文件

随机推荐