| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | const diskModel = require('../model/disk.model')const moment = require('moment')const dataMoment = (date) => {  const arrayDate = (date || moment().add(-1, 'day').format('YYYY-MM-DD')).split('-')  switch (arrayDate.length) {    case 3:      return {        year: arrayDate[0],        month: arrayDate[1],        day: arrayDate[2],        unitOfTime: 'day'      }    case 2:      return {        year: arrayDate[0],        month: arrayDate[1],        unitOfTime: 'month'      }    default:      return {        year: arrayDate[0],        unitOfTime: 'year'      }  }}exports.getData = async (date) => {  const { year, month, day, unitOfTime } = dataMoment(date)  const kalender = moment()  if (day) kalender.set('date', +day)  if (month) kalender.set('month', +month - 1)  if (year) kalender.set('year', +year)  console.log(kalender.startOf(unitOfTime).toISOString(), kalender.endOf(unitOfTime).toISOString())  const data = await diskModel.aggregate([    {      $match: {        timestamp: {          $gte: kalender.startOf(unitOfTime).toDate(),          $lt: kalender.endOf(unitOfTime).toDate()        },        mounted_on: '/'      }    },    {      $group: {        _id: { $dateToString: { format: '%Y-%m-%d', date: '$timestamp' } },        data: { $push: '$$ROOT' }      }    },    {      $unwind: {        path: '$data'      }    }  ]).exec()  return data.map(({ _id, data }) => ({    date: _id,    size: data.size,    used: data.used,    available: data.available,    use_percent: data.use_percent,    timestamp: data.timestamp,  }))}
 |