我正在尝试猫鼬聚合。我想获取日期范围内一个字段的总和。
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/

10-09 21:46