问题描述
我正在尝试使用bash脚本和JavaScript从MongoDB获取前一天的文档。
我使用JS将查询传递给MongoDB,但是获取日期却有一个问题,因为它是这样的:
2015-7-3 6:2:00
但是在我的数据库记录中是这样的:
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楼
只需使用日期数学
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小时。 根据您的选择进行选择。