如果当前日期和createdAt日期之间的时差小于60分钟,则mongodb查找查询

时间:2016-09-18 20:08:54

标签: node.js mongoose mongodb-query

嗨大家我试图在mongodb中编写一个复杂的查询来获取当前服务器日期和createdAt日期之间的日期时间差小于60分钟的文档。

Mongoldb -v 3.0.10 currentDate = new Date(); db.blog.find({' blogStatus':' OPEN'})

想要应用这样的东西:

如果currentDate.getMinutes()> 60分钟真实展示文件虚假不显示文件

1 个答案:

答案 0 :(得分:1)

如果您想获得超过60分钟的帖子,那么您需要在查询中包含以下内容:

db.blog.find({
  blogStatus: 'OPEN',
  createdAt: {
    $gt: date,
  }
});

其中date是通过从当前时间减去60分钟计算的日期。如果您使用Moment之类的内容,则可以使用它来减去分钟数:

moment().subtract(60, 'minutes');

确保您获得适用于Mongo的格式和时区。这应该有效:

var date = moment().subtract(60, 'minutes').utc().format();

没有Moment并且在Mongo shell中,这样的日期可以构造为:

var date = new Date(new Date() - 60 * 60 * 1000);