node.js - mongodb查找查询当前日期和createdAt日期之间的时间差是否小于60分钟

标签 node.js mongoose mongodb-query

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

蒙古数据库-v 3.0.10 当前日期 = 新日期(); db.blog.find({'blogStatus':'OPEN'})

想要应用这样的东西:

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

最佳答案

如果您想获取 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);

关于node.js - mongodb查找查询当前日期和createdAt日期之间的时间差是否小于60分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39562176/

相关文章:

node.js - 如何使用嵌套数组文档进行 Mongoose 聚合

javascript - 寻求帮助在 mongoose/mongodb 函数/方法中创建具有动态命名的干代码

javascript - mongodb中如何加入集合

mongodb - $in 需要一个数组作为第二个参数

node.js - 阵列更新后 Firestore 不显示更新的文档

node.js - Phonegap 安装问题(shasum 检查失败)

javascript - Mongoose findOne范围疑惑

node.js - 多个 Mongoose 预存中间件

javascript - Node.js - 文件系统获取文件类型,2012 年左右的解决方案

MongoDB多级$lookup排序不起作用