1天的文件来自mongodb

时间:2015-07-16 09:46:30

标签: javascript linux bash mongodb

我正在尝试使用bash脚本和JavaScript从MongoDB获取前一天的文档。

我使用JS将查询传递给MongoDB,但是当我得到日期时会出现问题,因为它是这样的:

  

2015-7-3 6:2:00

但在我的db记录中是这样的:

  

2015-07-03 06:02:00

var d = new Date();
db.mycoll.find({ "requestedDateTime" : { $gte :d.getFullYear()+'-'+(d.getUTCMonth() + 1)+'-'+(d.getDate() - 1)+' 06:00:00' }});

以上查询是我现在运行的方式,这也需要每天在cronjob中运行。 如果有任何方法可以不使用JS,我也很乐意学习它。

1 个答案:

答案 0 :(得分:1)

只需使用日期数学

var today = new Date(),
    yesterday = new Date( today.valueOf() - ( 1000 * 60 * 60 * 24 );

或四舍五入到UTC的开头:

var date = new Date(),
    today = new Date( date.valueOf() - ( date.valueOf() % ( 1000 * 60 * 60 * 24 ) ) ),
    yesterday = new Date( today.valueOf() - ( 1000 * 60 * 60 * 24 ) );

然后传入查询:

db.mycoll.find({ "requestedDate": { "$gte": yesterday, "$lt": today } });

因此,从执行时间开始24小时,或者在前一天24小时。根据您的需要选择。