Я пытаюсь создать данные для тепловой карты на своей панели управления. Мне нужно сгруппировать данные по дням, т.е. понедельник, вторник и т. Д. c, а затем сгруппировать данные по временным интервалам. Могу сгруппировать данные по дням. Но часть временного интервала не работает. Я использую MongoDB.
Пример моей схемы показан ниже
{
"createdAt": "2020-06-30T22:47:32+00:00",
"day": "Wednesday",
"user": {
"$oid": "5ec51d59ddfb380017649591"
},
"country": "NG",
"city": "",
"userType": "superadmin",
"fullName": "Jane Doe",
"__v": 0
}
Это то, что я мог придумать до сих пор
let heatMap = await await Session.aggregate([
{
$group: {
_id: "$day",
count: { $sum: 1 },
},
},
]);
Эти группы по дням для меня уже. Мне нужно дополнительно сгруппировать по интервалам часов
Пример ожидаемых данных
[
{
_id: "Sunday",
intervals: [
{
interval1: "12am-6am",
count: 34,
},
{
interval2: "6am-12noon",
count: 44,
},
],
},
{
_id: "Monday",
intervals: [
{
interval1: "12am-6am",
count: 34,
},
{
interval2: "6am-12noon",
count: 44,
},
],
},
];