Mongodb 聚合组多重结果
我尝试聚合操作“$group”。。 我想得到多组结果 我的数据是Mongodb 聚合组多重结果,mongodb,aggregation-framework,aggregate,aggregation,Mongodb,Aggregation Framework,Aggregate,Aggregation,我尝试聚合操作“$group”。。 我想得到多组结果 我的数据是 items: [ { director: "James", category: "fruit", name: "apple", money: 5000 }, { director: "James", category: "toy", name: "dragon", money: 15000 }, { director: "Sam", category:
items: [
{
director: "James",
category: "fruit",
name: "apple",
money: 5000
},
{
director: "James",
category: "toy",
name: "dragon",
money: 15000
},
{
director: "Sam",
category: "fruit",
name: "orange",
money: 3500
}
]
我想得到结果,这个
directorList:[
{
director: "James",
money: 20000
},
{
director: "Sam",
money: 3500
}
],
categoryList: [
{
category: "fruit",
money: 8500
},
{
category: "toy",
money: 15000
}
]
请回答。。
谢谢 您可以在下面尝试
db.collection.aggregate([
{ "$facet": {
"directorList": [
{ "$group": {
"_id": "$director",
"money": { "$sum": "$money" }
}},
{ "$project": {
"_id": false,
"director": "$_id",
"money": 1
}}
],
"categoryList": [
{ "$group:" {
"_id": "$category",
"money": { "$sum": "$money" }
}},
{ "$project": {
"_id": false,
"category": "$_id",
"money": 1
}}
]
}}
])
输出
[
{
"categoryList": [
{
"category": "toy",
"money": 15000
},
{
"category": "fruit",
"money": 8500
}
],
"directorList": [
{
"director": "Sam",
"money": 3500
},
{
"director": "James",
"money": 20000
}
]
}
]
我遇到了另一个问题
items: [
{
mart_code : 1,
director: "James",
category: "fruit",
name: "apple",
money: 5000
},
{
mart_code: 1
director: "James",
category: "toy",
name: "dragon",
money: 15000
},
{
mart_code: 2,
director: "Sam",
category: "fruit",
name: "orange",
money: 3500
}
]
我想得到结果。。
添加了mart_代码
martList: [ {
mart_code: 1,
directorList:[
{
director: "James",
money: 20000
}
],
categoryList: [
{
category: "fruit",
money: 5000
},
{
category: "toy",
money: 15000
}]
},
{
mart_code: 2,
directorList:[
{
director: "Sam",
money: 3500
}
],
categoryList: [
{
category: "fruit",
money: 3500
}]
}
]
我正在尝试$facet,和$group,$project。。。
有没有一种有效的方法?到目前为止您尝试了什么?$REWIND、$group和$group、$project。。。。。和$unwind、$group、$group。。。。。我不知道怎么做。这太棒了!哇!非常感谢。很高兴听到你的回答。