Javascript 在node.js中,如果有一组日期,如何获取每天的最新时间?
我正在设置一个服务,每4天从MongoDB集合获取EOD(一天结束)值。在此期间,每5分钟创建一次文档,这意味着我需要在每个期间之后返回4个EOD值,或者换句话说,我需要获得给定日期集合的每天的最新时间 我正在运行node 10,并使用mongoose与mongodb接口。我曾尝试用谷歌搜索这个问题,但mongodb似乎没有提供现成的解决方案。我试图通过每次创建一个散列并占用最长时间来实现它,但这感觉在计算上太紧张了 以下是时间收集的示例:Javascript 在node.js中,如果有一组日期,如何获取每天的最新时间?,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我正在设置一个服务,每4天从MongoDB集合获取EOD(一天结束)值。在此期间,每5分钟创建一次文档,这意味着我需要在每个期间之后返回4个EOD值,或者换句话说,我需要获得给定日期集合的每天的最新时间 我正在运行node 10,并使用mongoose与mongodb接口。我曾尝试用谷歌搜索这个问题,但mongodb似乎没有提供现成的解决方案。我试图通过每次创建一个散列并占用最长时间来实现它,但这感觉在计算上太紧张了 以下是时间收集的示例: [ 'Sun Aug 02 2019 21:00:00
[ 'Sun Aug 02 2019 21:00:00 GMT-0700 (Pacific Daylight Time)',
'Sun Aug 02 2019 21:05:00 GMT-0700 (Pacific Daylight Time)',
'Sun Aug 03 2019 21:10:00 GMT-0700 (Pacific Daylight Time)',
'Sun Aug 03 2019 21:15:00 GMT-0700 (Pacific Daylight Time)',
'Sun Aug 04 2019 21:20:00 GMT-0700 (Pacific Daylight Time)',
'Sun Aug 04 2019 21:20:00 GMT-0700 (Pacific Daylight Time)' ]
鉴于上述列表,我需要返回:
['Sun Aug 02 2019 21:05:00 GMT-0700 (Pacific Daylight Time)',
'Sun Aug 03 2019 21:15:00 GMT-0700 (Pacific Daylight Time)',
'Sun Aug 04 2019 21:20:00 GMT-0700 (Pacific Daylight Time)'
]
注意:-只需使用node js即可。这里有一个例子。或者,如果您想使用MongoDB执行此操作,那么您需要在将文档保存到集合中时将日期转换为时间戳,并且您可以根据需要按升序/降序获取数据 保存文档时,需要添加时间戳
{
timestamp: { type: Date, default: Date.now},
}
从MongoDB集合检索数据时,需要添加时间戳
ascendingOrder = {'timestamp': 1} //ascending order
descendingOrder = {'timestamp': -1} //descending order
collection.find({}, limit=20).sort(descendingOrder)
1表示升序,-1表示降序。默认值为1
var日期=[
“太阳2019年8月4日21:20:00 GMT-0700(太平洋夏令时)”,
“太阳2019年8月2日21:05:00 GMT-0700(太平洋夏令时)”,
“太阳2019年8月3日21:10:00 GMT-0700(太平洋夏令时)”,
“太阳2019年8月2日21:00:00 GMT-0700(太平洋夏令时)”,
“太阳2019年8月3日21:15:00 GMT-0700(太平洋夏令时)”,
“2019年8月4日星期日21:20:00 GMT-0700(太平洋夏令时)”
]
var sortedDates=dates.sort(函数(var1,var2){
var a=新日期(var1),
b=新日期(var2);
如果(a>b)
返回1;
if(a控制台日志(分类数据)代码>注意:-只需使用节点js即可。这里有一个例子。或者,如果您想使用MongoDB执行此操作,那么您需要在将文档保存到集合中时将日期转换为时间戳,并且您可以根据需要按升序/降序获取数据
保存文档时,需要添加时间戳
{
timestamp: { type: Date, default: Date.now},
}
从MongoDB集合检索数据时,需要添加时间戳
ascendingOrder = {'timestamp': 1} //ascending order
descendingOrder = {'timestamp': -1} //descending order
collection.find({}, limit=20).sort(descendingOrder)
1表示升序,-1表示降序。默认值为1
var日期=[
“太阳2019年8月4日21:20:00 GMT-0700(太平洋夏令时)”,
“太阳2019年8月2日21:05:00 GMT-0700(太平洋夏令时)”,
“太阳2019年8月3日21:10:00 GMT-0700(太平洋夏令时)”,
“太阳2019年8月2日21:00:00 GMT-0700(太平洋夏令时)”,
“太阳2019年8月3日21:15:00 GMT-0700(太平洋夏令时)”,
“2019年8月4日星期日21:20:00 GMT-0700(太平洋夏令时)”
]
var sortedDates=dates.sort(函数(var1,var2){
var a=新日期(var1),
b=新日期(var2);
如果(a>b)
返回1;
if(a控制台日志(分类数据)代码>这太棒了!然而,第二部分是我遇到的问题。我每天只想要一张最新的唱片。第一部分可能是对列表进行排序,但是否有一种按天分组的快速方法?是的,在这种情况下,您需要通过limit=1(以获得单个记录)。从集合中获取数据的快速方法。这太棒了!然而,第二部分是我遇到的问题。我每天只想要一张最新的唱片。第一部分可能是对列表进行排序,但是否有一种按天分组的快速方法?是的,在这种情况下,您需要通过limit=1(以获得单个记录)。从集合中获取数据的快速方法。