【问题标题】:mongodb find query if the time difference between current date and createdAt date is less than 60 minutesmongodb find查询当前日期和createdAt日期的时间差是否小于60分钟
【发布时间】:2017-01-26 11:51:45
【问题描述】:

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

Mongoldb -v 3.0.10 当前日期 = 新日期(); db.blog.find({'blogStatus':'OPEN'})

想要应用这样的东西:

如果 currentDate.getMinutes() > 60 分钟 true 显示文档 false 不显示文档

【问题讨论】:

标签: node.js mongoose mongodb-query


【解决方案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);

【讨论】:

  • 谢谢@rsp。 db.blog.find({'blogStatus':'OPEN','createdAt':{'$gte':date}})
【解决方案2】:

我终于使用了下面的查询 db.blog.find({'blogStatus':'OPEN','createdAt':{'$gte':date}})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    • 2023-03-19
    • 2021-07-12
    • 2019-05-01
    • 1970-01-01
    相关资源
    最近更新 更多