Mongodb中的嵌套分组



我正在对MongoDB文档进行分组,并在下面的链接中更新示例

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的两个元素并显示它们的平均时间

注:问题和示例链接已更新

查询
  • 按两个字段分组,进行计算
  • 按1字段分组,并使用计算出的avgtime
  • 首先对特定的(这里是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"]}])

最新更新