多场聚合

时间:2017-03-02 09:29:32

标签: mongodb aggregation-framework

阅读有关aggregation操作的MongoDb文档,我发现this

db.orders.aggregate(
    [
        { $match: { status: "A" } },
        { $group: { _id: "$cust_id", total: { $sum: "$amount" } } },
        { $sort: { total: -1 } }
    ],
    {
         explain: true
    }

但是,假设我有另一个名为phone的字段,我如何汇总cust_idphone

我尝试过如下:

{ $group: { _id: {"$cust_id", "$phone"}, total: { $sum: "$amount" } } },

但是没有工作

修改

我想要这种行为:

SELECT SUM(amount)
FROM orders
GROUP BY cust_id, phone

但我有这个错误(我必须附上截图,因为MongoChef我可以发现文字错误):

enter image description here

1 个答案:

答案 0 :(得分:2)

没有什么可以解释的。它的语法错误。对象应具有字段名称,而不仅是字段值。 E.g:

{ $group: { _id: {id:"$cust_id", phone:"$phone"}, total: { $sum: "$amount" } } },