我执行了以下查询:
db.Indiv2.aggregate(
{$unwind: '$conso'},
{$group: {_id: {conso:'$conso.nom_commercial', region:"$region"}, sum: {$sum: 1}}},
{$sort : {sum : -1}}
);
返回以下内容:
{
"_id" : {
"conso" : "x",
"region" : 1
},
"sum" : 73226.0
},
{
"_id" : {
"conso" : "x",
"region" : 8
},
"sum" : 25683.0
},
{
"_id" : {
"conso" : "grandlait demi �cr�m� uht",
"region" : 1
},
"sum" : 251.0
}
有21个不同的地区,我正在尝试按地区消费最多的项目。如何使用“sum”返回给定每个区域的最高值?
答案 0 :(得分:1)
您应该将以下两个阶段添加到聚合管道的末尾:
$group: {
_id: "$_id.region",
"conso": {
$first: "$_id.conso"
},
"sum": {
$first: "$sum"
}
}