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

时间:2015-05-12 01:42:35

标签: 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")

是否可以这样做?

2 个答案:

答案 0 :(得分:0)

没有正常的方法。最好将数据库转换为普通格式,并且更快地完成它。

我要做的是使用foreach for every document并使用以下javascript function进行修改。

答案 1 :(得分:0)

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

只需遵循以下功能: 函数findRows(){

//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; 
}

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