我正在尝试猫鼬聚合。我想获取日期范围内一个字段的总和。
http://mongoosejs.com/docs/api.html#model_Model.aggregate
mymodel.aggregate({$match:{date:{$gte: fromDate, $lt: toDate}}},
{$project:{_id:0,date:1, count:1}},
{$group:{'_id':0,count:"$count"}}).exec(function(err,data){
if(err){
console.log('Error Fetching model');
console.log(err);
}
callback(false, data);
});
这是行不通的。
{ [MongoError: exception: the group aggregate field 'count' must be defined as an expression inside an object]
name: 'MongoError',
errmsg: 'exception: the group aggregate field \'count\' must be defined as an expression inside an object',
code: 15951,
ok: 0 }
任何想法?
最佳答案
此语法不正确:
{$group:{'_id':0,count:"$count"}}
$count
在上面不是运算符,而只是字段引用。 $group
中不能有“裸”字段引用。您需要使用聚合运算符,例如:{$group:{'_id':0,count:{"$sum": "$count"}}}
请显示一些样本文档,我将以更详尽的方式更新答案。
关于node.js - 日期范围内的 Mongoose 合计,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21039449/