我想使用聚合和组阶段对所有“总”字段值求和。 我的代码和文件在这里
文件
{
"_id": "57a068477b2l51ec16eb7das",
"userID":"5742c6eedsaadsd93573e",
"profileID":"5742aee49adv520593573c",
"date": 1470130247779,
"updateDate": 1470130361342,
"total": 2
}
{
"_id": "57a068477b2l51ec16eb983",
"userID":"5742c6eedsaadsd93573e",
"profileID":"5742aee49adv520593573c",
"date": 1470130247779,
"updateDate": 1470130361342,
"total": 1
}
我在下面查询“总计”值的获取总和
RecallProfile.aggregate([
{
"$match": {
"updateDate": {
"$gte": from, "$lte": to
}
}
},
{
$group: {
"_id": "$updateDate",
"totalRecord": {"$sum": "$total"}
}
}
], function (err, result) {
if (err) {
console.log('error ', err);
res.sendStatus(500);
} else {
console.log("result", result);
res.sendStatus(200);
}
})
给出“result []”日志。
答案 0 :(得分:0)
我试过了,它正在发挥作用。看起来问题是来自和来。在聚合$ match管道中,我们需要与field具有相同的类型。当我们获得字符串形式的快速请求查询时,您需要parseInt()
个变量。
"$match": {
"updateDate": {
"$gte": parseInt(from), "$lte": parseInt(to)
}
}