Optimal storage of high-frequency data using sharding

Hi,

I wonder how to optimally store sensor data. The data may be stored in the following form:

{
   owner: ObjectId(),
   timestamp: number,
   source: string,
   value: number
}

or in such:

{
   owner: ObjectId(),
   startDate: ISODate,
   endDate: ISODate,
   source: string,
   values: [100 numbers]
}

Current measurements will be added to the collection frequently. Aggregates and queries will often operate on dates, e.g. the average measurement result for a given month of the year. I would also like to apply sharding to this collection. I wonder how to implement it optimally in this case. Which form of data storage will be better in my case, in terms of aggregate and query performance (inserts, modifications), taking into account that I want to use sharding?