给一把钥匙获得最高价值

时间:2017-11-12 17:40:47

标签: mongodb mongodb-query aggregation-framework

我执行了以下查询:

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”返回给定每个区域的最高值?

1 个答案:

答案 0 :(得分:1)

您应该将以下两个阶段添加到聚合管道的末尾:

$group: {
    _id: "$_id.region",
    "conso": {
        $first: "$_id.conso"
    },
    "sum": {
        $first: "$sum"
    }
}