将每15分钟的时间戳拆分数据,并循环使用。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将每15分钟的时间戳拆分数据,并循环使用。相关的知识,希望对你有一定的参考价值。
我试图根据15分钟的数据进行一些计算。
我得到了这样一天的数据。
let DayData = db.sensingresults.find(
"updatedAt":
"$gt": ISODate("2020-06-07T00:00:00.000Z"),
"$lte": ISODate("2020-06-08T00:00:00.000Z")
, "vitalSensing": "$exists": 1
).sort(updatedAt: 1)
我有每个记录的时间戳值为: DayData
我想在任何一个临时数组中获取前15分钟的数据,并对其进行一些计算并保存到DB中。然后清空临时数组,加载接下来的15分钟的数据,对其进行一些计算并保存到DB中。
我知道如何进行计算和保存到DB部分。但我需要一些指导,如何获得每15分钟的数据,并在其中循环。
更详细的解释。 我的数据总是从午夜开始:2020-06-07T00:00:00.000Z这样。
这是我的高层次想法,但不知道如何继续实现。
首先将前15分钟的数据存入一个数组中。
let tempArray = [];
tempArray.push(data for > 12.0 am to <=12.15) // after completing for loop on tempArray, come here and load next set of data.
for (let i = 0; i < tempArray.length; i++)
... perform my calculation
... save to db
然后清空数组tempArray = []并加载下一组数据,即>12.15am到<=12.30am......以此类推......并执行与上面相同的操作(做一些计算并保存到DB中)。
我需要对整个过程进行迭代。DayData
以15分钟为单位。
答案
如果我对你的问题理解正确的话(用日期+15分钟取行),你可以将日期转换为unix时间,并添加15分钟(900000毫秒),然后将其转换回来用于你的查询。
let unixTime = Date.parse(ISOString) + 900000
let date = new Date(unixTime).toISOString()
编辑:你可以通过过滤,输出一个15分钟间隔内所有对象的数组。
tempArray = DayData.filter(e => Date.parse(e.updatedAt) % 900000 === 0).map(e => e)
以上是关于将每15分钟的时间戳拆分数据,并循环使用。的主要内容,如果未能解决你的问题,请参考以下文章
将行拆分为 m 个部分并构建每个部分的平均值 [SQLite]
根据python中训练和测试集中的时间戳为每个用户拆分数据集