Данные сгруппированы по году и месяцу. Как я могу получить значение для этого конкретного месяца? - PullRequest
0 голосов
/ 15 января 2019

В настоящее время я пытаюсь упорядочить свои данные по годам, а затем по месяцам и посмотреть «общий тариф» за этот месяц. Мне удалось сгруппировать данные по годам и месяцам, но я не могу понять, как получить «общий тариф» за этот месяц.

Мой текущий групповой запрос выглядит так:

{
    $group: {
        _id : "$year", month: { $addToSet: "$month" },
        "totalFare" : { "$sum": "$fare"}
    }
}

, который сортирует данные как это

Как вы можете видеть, totalFare показывает тариф за год, а не за месяцы. Я пытался использовать функцию $ addToSet, чтобы добавить итоги, но я получаю ошибки, когда пытаюсь это сделать. Есть идеи?

1 Ответ

0 голосов
/ 15 января 2019

Потратив на это еще час. Мне удалось найти решение. Мне нужно было добавить еще одну группу, чтобы упорядочить данные по годам и месяцам, а затем отформатировать результаты, используя другую группу.

{
    $group: {
        '_id': {
            "month": "$month",
            "year": "$year",
        },
        "totalFare" : { "$sum": "$fare"}
    }
},
{
    $group: {
        _id : "$_id.year", 
        month: { 
            "$addToSet": {
                "monthName": "$_id.month",
                "totalFare": "$totalFare"
            }
        }
    }
}

Это обеспечивает следующий вывод

Надеюсь, это полезно для всех, у кого похожая проблема!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...