我的数据集看起来如下,时间是时区记录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")
是否可以这样做?
答案 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;
}
我认为这应该起作用,尽管您仍然应该能够将isoDateInUTC1
和isoDateInUTC2
用作参数,以便可以重用该函数。更重要的是,您应该能够在mongodb查询中运行类似的代码,但这仍然可以完成工作。