如何比较MongoDB中具有不同时间戳和格式的时间?

如何比较MongoDB中具有不同时间戳和格式的时间?,mongodb,date,Mongodb,Date,我的数据集如下所示,时间记录在时区GMT中: {"id":1,"Timestamp:"Mon, 11 May 2015 07:57:46 GMT"} {"id":2,"Timestamp:"Mon, 11 May 2015 08:57:46 GMT"} 我想计算一段时间内的行数: from ISODate("2015-05-10T01:40:08.963Z") to ISODate("2015-05-12T01:40:08.963Z") 有可能做到这一点吗?没有正常的方法。最好将数据库转换为

我的数据集如下所示,时间记录在时区GMT中:

{"id":1,"Timestamp:"Mon, 11 May 2015 07:57:46 GMT"}
{"id":2,"Timestamp:"Mon, 11 May 2015 08:57:46 GMT"}
我想计算一段时间内的行数:

from ISODate("2015-05-10T01:40:08.963Z")
to ISODate("2015-05-12T01:40:08.963Z")

有可能做到这一点吗?

没有正常的方法。最好将数据库转换为正常格式,而且转换速度越快越好


我要做的是使用以下内容并对其进行修改。

对于您的挑战,有一个非常简单的解决方案。两种数据格式(GMT和ISO格式)都可以轻松传递

只需按照以下功能操作即可: 函数findRows(){

//将日期转换为字符串
const isoDateInUTC1=新日期(“2015-05-12T01:40:08.963Z”).getTime(),
isoDateInUTC2=新日期(“2015-05-12T01:40:08.963Z”).getTime(),
rows=wait collection.find({}).lean();
让rowCount=0;
for(让count=0;count

我认为这应该是可行的,尽管您应该仍然能够将
isoDateInUTC1
isoDateInUTC2
作为参数,以便可以重用该函数。更重要的是,您应该能够在mongodb查询中运行类似的代码,但这仍然可以完成任务

您是否将时间戳存储为字符串?像第一个例子一样?@salvadodali是的,它存储为字符串。
//Convert the dates to strings
const isoDateInUTC1 = new Date("2015-05-12T01:40:08.963Z").getTime(),
isoDateInUTC2 = new Date("2015-05-12T01:40:08.963Z").getTime(),
rows= await collection.find({}).lean();

Let rowCount = 0;

for (let count = 0; count < trades.length; count++) {
   var gmtDateUTC = new Date("").getTime(rows[count].Timestamp);
    isoDateInUTC1 < gmtDateUTC < isoDateInUTC2  
    ?  rowCount++;
 }
return rowCount; 
}