mirror of
https://github.com/Litlyx/litlyx
synced 2025-12-10 15:58:38 +01:00
[NOT READY] fix granularity
This commit is contained in:
@@ -16,7 +16,7 @@ export default defineEventHandler(async event => {
|
|||||||
const timelineData = await executeTimelineAggregation({
|
const timelineData = await executeTimelineAggregation({
|
||||||
projectId: project_id,
|
projectId: project_id,
|
||||||
model: EventModel,
|
model: EventModel,
|
||||||
from, to, slice,
|
from, to, slice
|
||||||
});
|
});
|
||||||
return timelineData;
|
return timelineData;
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -69,19 +69,22 @@ export async function executeAdvancedTimelineAggregation<T = {}>(options: Advanc
|
|||||||
...options.customGroup
|
...options.customGroup
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
$sort: { "_id.isoDate": 1 }
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
$densify: {
|
$densify: {
|
||||||
field: "_id.isoDate",
|
field: "_id.isoDate",
|
||||||
range: {
|
range: {
|
||||||
step: 1,
|
step: 1,
|
||||||
unit: granularity,
|
unit: granularity,
|
||||||
bounds: "full"
|
bounds: [
|
||||||
|
new Date(options.from),
|
||||||
|
new Date(options.to)
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
$sort: { "_id.isoDate": 1 }
|
||||||
|
},
|
||||||
{
|
{
|
||||||
$addFields: { count: { $ifNull: ["$count", 0] }, }
|
$addFields: { count: { $ifNull: ["$count", 0] }, }
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -75,21 +75,21 @@ class DateService {
|
|||||||
getGranularityData(slice: Slice, dateField: string) {
|
getGranularityData(slice: Slice, dateField: string) {
|
||||||
|
|
||||||
const dateFromParts: Record<string, any> = {};
|
const dateFromParts: Record<string, any> = {};
|
||||||
let granularity = '';
|
let granularity;
|
||||||
|
|
||||||
switch (slice) {
|
switch (slice) {
|
||||||
case 'hour':
|
case 'hour':
|
||||||
dateFromParts.hour = { $hour: { date: dateField } }
|
dateFromParts.hour = { $hour: { date: dateField } }
|
||||||
granularity = 'hour';
|
granularity = granularity || 'hour';
|
||||||
case 'day':
|
case 'day':
|
||||||
dateFromParts.day = { $dayOfMonth: { date: dateField } }
|
dateFromParts.day = { $dayOfMonth: { date: dateField } }
|
||||||
granularity = 'day';
|
granularity = granularity || 'day';
|
||||||
case 'month':
|
case 'month':
|
||||||
dateFromParts.month = { $month: { date: dateField } }
|
dateFromParts.month = { $month: { date: dateField } }
|
||||||
granularity = 'month';
|
granularity = granularity || 'month';
|
||||||
case 'year':
|
case 'year':
|
||||||
dateFromParts.year = { $year: { date: dateField } }
|
dateFromParts.year = { $year: { date: dateField } }
|
||||||
granularity = 'year';
|
granularity = granularity || 'year';
|
||||||
}
|
}
|
||||||
|
|
||||||
return { dateFromParts, granularity }
|
return { dateFromParts, granularity }
|
||||||
|
|||||||
Reference in New Issue
Block a user