[NOT READY] fix granularity

This commit is contained in:
Emily
2024-12-07 18:24:48 +01:00
parent ad8e9e1ead
commit 78f979d23a
3 changed files with 13 additions and 10 deletions

View File

@@ -16,7 +16,7 @@ export default defineEventHandler(async event => {
const timelineData = await executeTimelineAggregation({
projectId: project_id,
model: EventModel,
from, to, slice,
from, to, slice
});
return timelineData;
});

View File

@@ -69,19 +69,22 @@ export async function executeAdvancedTimelineAggregation<T = {}>(options: Advanc
...options.customGroup
}
},
{
$sort: { "_id.isoDate": 1 }
},
{
$densify: {
field: "_id.isoDate",
range: {
step: 1,
unit: granularity,
bounds: "full"
bounds: [
new Date(options.from),
new Date(options.to)
]
}
}
},
{
$sort: { "_id.isoDate": 1 }
},
{
$addFields: { count: { $ifNull: ["$count", 0] }, }
},

View File

@@ -75,21 +75,21 @@ class DateService {
getGranularityData(slice: Slice, dateField: string) {
const dateFromParts: Record<string, any> = {};
let granularity = '';
let granularity;
switch (slice) {
case 'hour':
dateFromParts.hour = { $hour: { date: dateField } }
granularity = 'hour';
granularity = granularity || 'hour';
case 'day':
dateFromParts.day = { $dayOfMonth: { date: dateField } }
granularity = 'day';
granularity = granularity || 'day';
case 'month':
dateFromParts.month = { $month: { date: dateField } }
granularity = 'month';
granularity = granularity || 'month';
case 'year':
dateFromParts.year = { $year: { date: dateField } }
granularity = 'year';
granularity = granularity || 'year';
}
return { dateFromParts, granularity }