Mongodb聚合,两个日期之间的天数

时间:2018-03-05 09:19:12

标签: mongodb aggregation-framework aggregation

我有两个约会,我需要在这些日期之间获得所有日子(2018年3月1日| 2018年3月2日......)。我需要在文件上得到一笔金额。 例如,

[
{id:1, date: 1519833600, type: "sms", amount: 130.00},
{id:4, date: 1519833600, type: "sms", amount: 130.00},
{id:2, date: 1519920000, type: "chat", amount: 480.00},
{id:3, date: 1519920000, type: "sms", amount: 130.00},
]

日期为3月1日至3月6日的结果将是,

[

{date: "Mar 1, 2018", sms: 260.00, chat: 0},
{date: "Mar 2, 2018", sms: 130.00, chat: 480},
{date: "Mar 3, 2018", sms: 0, chat: 0},
{date: "Mar 4, 2018", sms: 0, chat: 0},
{date: "Mar 5, 2018", sms: 0, chat: 0},
{date: "Mar 6, 2018", sms: 0, chat: 0},
]

我尝试使用$ project但我没有成功。你能给我一个样品管道吗?我真的不善于聚合。

根据要求,这是我的尝试:

[
{
    $match: {gte: <date>, lt: <date>},
},
{
    $group: {
        _id: null,
        sms: { $sum: "$amount"}
    }
}
]

我不知道如何将总金额分成不同的类型(例如,短信:400,聊天:300)。然后我不知道如何按日期(3月1日,2月2日)获得它。

0 个答案:

没有答案