I'm trying to sum all fields price by date.
The mongodb schema is:
Flow({
dateBuy: {type: Date},
client: {type: String},
price: {type: Number}
});
I am using the following query:
db.flow.aggregate([
{
"$group":{
"_id":{
"year":{
"$year":"$dateBuy"
},
"month":{
"$month":"$dateBuy"
},
"day":{
"$dayOfMonth":"$dateBuy"
}
}
},
"value":{
"$sum":"$price"
}
}
])
However the following message is:
2017-01-26T11:55:35.702-0200 E QUERY SyntaxError: Unexpected token >
Someone would know how to solve this problem, I could not identify what I am doing wrong?
You missed indentation - value should be on same level as _id field definition, inside $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
}
])