Mongodb - 按日期汇总

时间:2017-01-26 14:16:39

标签: mongodb

我正在尝试按日期对所有字段进行求和。

mongodb架构是:

Flow({
    dateBuy: {type: Date},
    client: {type: String},
    price: {type: Number}
});

我使用以下查询:

db.flow.aggregate([  
    {  
        "$group":{  
            "_id":{  
                "year":{  
                    "$year":"$dateBuy"
                },
                "month":{  
                    "$month":"$dateBuy"
                },
                "day":{  
                    "$dayOfMonth":"$dateBuy"
                }
            }
        },
        "value":{  
            "$sum":"$price"
        }
    }
])

但是以下信息是:

2017-01-26T11:55:35.702-0200 E QUERY SyntaxError: Unexpected token >

有人会知道如何解决这个问题,我无法确定我做错了什么?

1 个答案:

答案 0 :(得分:2)

您错过了缩进 - value应与_id字段定义处于同一级别,$ group operator

db.flow.aggregate([  
    {  
        "$group": {  
            "_id":{  
                "year":{ "$year":"$dateBuy" },
                "month":{ "$month":"$dateBuy" },
                "day":{ "$dayOfMonth":"$dateBuy" }
            }, 
            "value":{ "$sum":"$price" }
        }
        // your "value" is defined here, outside of $group operator
    }
])