当前位置: 代码迷 >> JavaScript >> 1天的旧文档从mongodb获取
  详细解决方案

1天的旧文档从mongodb获取

热度:25   发布时间:2023-06-07 17:55:25.0

我正在尝试使用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的任何方法,我也想学习它。

只需使用日期数学

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小时。 根据您的选择进行选择。

  相关解决方案