Mongoose汇总订单在一小时内完成

时间:2017-04-02 22:15:40

标签: node.js mongodb mongoose aggregation-framework

我有一个名为' 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);
});

1 个答案:

答案 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 } } }
]