我有一个名为' Order'的Mongoose模型。跟踪用户订单。
我想按小时对订单进行分组,并查找当天每小时下订单的数量。
我试图使用mongoose内置的聚合框架,但无法弄清楚如何实现这一点。
有人能给我一个如何运作的例子吗?
理想情况下,我想要输出如下
{0: 2, 1: 5, 2:4,...,23:2}
其中键是小时,值是否。订单。
我最初的尝试
Order.aggregate([
{"$match":{
"created_on" : {
$gt: //early hour,
$lt: //late hour
}
}},
{ "$group": { _id: null, count: { $sum: 1 } } }
], function(err, results){
if(err) throw err;
console.log(results);
});
答案 0 :(得分:0)
您需要按天过滤,group by hour:
[
{"$match":{
"created_on" : {
$gt: //beginning of the day,
$lt: //end of the day
}
}},
{ "$group": { _id: { $hour: "$created_on" }, count: { $sum: 1 } } }
]