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