无法读取未定义的属性“总计”

时间:2019-06-03 17:56:14

标签: mongodb mongoose aggregation-framework

如果我没有当月的数据,则出现以下错误

  

无法读取未定义的属性'total'

我尝试过的东西

$group: { _id: null,
        total: { $sum:{ $cond : [ {$eq : [ "$cost", undefined ]} , 0,'$cost'] }}
        }

下面是我当前的代码

var currentDate = new Date(); 
var currMonth = currentDate.getMonth()+1;    
Spending.aggregate([
    { $project: { month: { $month: '$date' }, cost: true } },
    { $match: { month: currMonth } },
    { $group: {
        _id: null,
        total: { $sum: '$cost'}
        }
    }
]).exec().then(result => {
    console.log(result);
    res.status(200).render('index', { total: result });
})
.catch(err => {
    console.log(err);
    res.status(500).json(err);
});

例如,如果我的数据库中有此条目1

{
日期:2019-05-10,
费用:10
}

在这种情况下,如果currMonth为 05 ,则总计为 10

现在,如果currMonth是除 5 以外的任何其他值,它将给出

上面的错误,而预期输出为 0

0 个答案:

没有答案