Если у меня нет данных за текущий месяц, я получаю следующую ошибку
Невозможно прочитать свойство '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