0
我实际上试图获取有关我的应用程序的一些信息。Mongoose,mongodb,坏聚合组合
我必须得到一些日/月/年的信息分组。我有很好的结果属性,但即使数据库中没有任何内容,也会显示信息。
注意:开始和结束是格式良好的日期。
TraitementNettoyage.aggregate([
{$match: { 'dateEntre': {$gt: start}, 'dateEntre': {$lt: end} }},
{$group: {'_id': {'day': {'$dayOfMonth': '$dateEntre'}, 'month': {'$month': '$dateEntre'}, 'year': {'$year': '$dateEntre'}}, count: {$sum: 1}}}
]).exec((err, res)=>
console.log res
)
我得到这个结果集:
[
{
"_id": {
"day": 24,
"month": 3,
"year": 2015
},
"count": 2
}
]
事实是,我有一个关于2015年3月24日没有在DB。 在我的数据库中,我只有2组数据和2015-03-23日期。
我应该纠正我的请求得到确切的两个结果:
[
{
"_id": {
"day": 24,
"month": 3,
"year": 2015
},
"count": 0
}
]
和
[
{
"_id": {
"day": 23,
"month": 3,
"year": 2015
},
"count": 2
}
]
?
编辑:
这里,与结果$ LTE和$ GTE:
[
{
"_id": {
"day": 25,
"month": 3,
"year": 2015
},
"count": 2
},
{
"_id": {
"day": 24,
"month": 3,
"year": 2015
},
"count": 2
}
]
的问题是,计数是不正确的。事实上2015年3月24日的数字应该是2,而2015年3月25日的数字应该是0。
感谢提前
让你的起点和从23/3/2015或24/3/2015包含结束日期? – Dineshaws 2015-03-25 07:47:37
23/03/2015至23/03/2015和24/03/2015至24/03/2015。问题在于计数实际上不正确: -/ – mfrachet 2015-03-25 08:36:01
请使用$ gte和$ lte。 – Dineshaws 2015-03-25 09:11:12