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 个字段)进行分组,然后使用特定的值对更一般的进行分组
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"]}])
我正在对 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 个字段)进行分组,然后使用特定的值对更一般的进行分组
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"]}])