mongodb - 无法读取未定义的属性“总计”
问题描述
如果我没有当月的数据,那么我会收到以下错误
无法读取未定义的属性“总计””
我试过的东西
$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 个条目
{
date: 2019-05-10,
cost: 10
}
在这种情况下,如果 currMonth 为05,则总计为10
现在,如果 currMonth 是除5之外的任何内容,则会给出上述错误,
而预期输出为0
解决方案
推荐阅读
- html - 在同一行中将图像向右移动
- html - 如何在未居中且非全宽的容器内使 100vw 项目居中?
- matlab - matlab最近邻插值结果
- user-interface - Tkinter 程序打开 2 个窗口的问题
- python - Python - 如何在列表列表中划分数字?
- android - Galaxy Tab S2 上的应用程序完全黑暗,触摸屏处于活动状态?
- azure - 如何在 ARM 模板中引用静态 IP 地址?
- python - 如何将字符串与数据库中的值匹配
- javascript - Ajax XHR 返回 500 错误,但 PHP 文件有效
- php - 可变数量参数的 PHP 代码