我的mongodb中有文档,此文档的event
字段-此fild类型为date
。年,月,日无所谓,仅表示白天的时间。我希望cron脚本每天都可以从mongodb中汇总带有event
(键入日期)字段的文档,该文档应在最近的10分钟内(到脚本调用日期)。如何以正确的方式实施它?
最佳答案
db.mytable.find(
{
"event": {
$gt: new Date(new Date().getTime() - (10 * 60 * 1000))
}
})
该查询将查找所有具有
"event"
属性且在过去10分钟内具有值的文档。不带参数的new Date()
返回表示“立即”的Date
。我们从中拉出以毫秒为单位的数字纪元时间,然后减去10分钟。更具体地说,我们减去(10分钟*每分钟60秒*每秒1000毫秒),以便转换为正确的单位。然后,我们使用该值构造另一个new Date(...)
,这是进入$gt
(大于)过滤条件的值。您提到需要“聚合”。如果是这样,则也可以在所需的任何Aggregation Pipeline中使用同一查询。
关于node.js - mongodb按最接近特定小时/分钟的日期汇总文档,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45199073/