Mongodb 中的嵌套分组

Nested grouping in Mongodb

我正在对 MongoDB 文档进行分组并更新下面的示例 link

https://mongoplayground.net/p/c2s8KmavPBp

我希望输出看起来像

[
  {
    "group" : "one",
      "details":[{
        "avgtime" : 9.359833333333333,
        "title": "Scence 1"
    },{
        "avgtime" : 9.359833333333333,
        "title": "Scence 2"
    },{
        "avgtime" : 9.359833333333333,
        "title": "Scence 3"
    }]
  },
  {
    "group" : "two",
      "details":[{
        "avgtime" : 9.359833333333333,
        "title": "Scence 1"
    }]
  }
  ]

如何将字段_id重命名为组并合并包含title:scence 1的两个元素并显示它们的平均时间

注意:问题和示例 link 已更新

查询

  • 按两个字段分组,进行计算
  • 按一个字段分组并使用计算出的平均时间
  • 首先对特定的(这里有 2 个字段)进行分组,然后使用特定的值对更一般的进行分组

PlayMongo

aggregate(
[{"$group": 
   {"_id": {"group": "$group", "title": "$details.title"},
    "avgtime": 
      {"$avg": 
        {"$divide": [{"$subtract": ["$endTime", "$startTime"]}, 60000]}}}},
 {"$group": 
   {"_id": "$_id.group",
    "group": {"$first": "$_id.group"},
    "details": {"$push": {"title": "$_id.title", "avgtime": "$avgtime"}}}},
 {"$unset": ["_id"]}])