mirror of
https://github.com/Litlyx/litlyx
synced 2025-12-10 07:48:37 +01:00
[NOT READY] fix granularity
This commit is contained in:
@@ -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;
|
||||
});
|
||||
|
||||
@@ -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] }, }
|
||||
},
|
||||
|
||||
@@ -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 }
|
||||
|
||||
Reference in New Issue
Block a user