Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在node.js中,如果有一组日期,如何获取每天的最新时间?_Javascript_Node.js_Mongodb_Mongoose - Fatal编程技术网

Javascript 在node.js中,如果有一组日期,如何获取每天的最新时间?

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

我正在设置一个服务,每4天从MongoDB集合获取EOD(一天结束)值。在此期间,每5分钟创建一次文档,这意味着我需要在每个期间之后返回4个EOD值,或者换句话说,我需要获得给定日期集合的每天的最新时间

我正在运行node 10,并使用mongoose与mongodb接口。我曾尝试用谷歌搜索这个问题,但mongodb似乎没有提供现成的解决方案。我试图通过每次创建一个散列并占用最长时间来实现它,但这感觉在计算上太紧张了

以下是时间收集的示例:

[ '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(以获得单个记录)。从集合中获取数据的快速方法。