【发布时间】:2017-12-25 05:28:00
【问题描述】:
我的 mongodb 中有文档,这些文档有 event 字段 - 此字段类型为 date。年、月、日,无所谓,只表示一天中的时间。我希望 cron 脚本每天都从 mongodb 中聚合带有 event (输入日期)字段的文档在最近 10 分钟内(到脚本调用日期)。如何正确实施?
【问题讨论】:
标签: node.js mongodb aggregation-framework
我的 mongodb 中有文档,这些文档有 event 字段 - 此字段类型为 date。年、月、日,无所谓,只表示一天中的时间。我希望 cron 脚本每天都从 mongodb 中聚合带有 event (输入日期)字段的文档在最近 10 分钟内(到脚本调用日期)。如何正确实施?
【问题讨论】:
标签: node.js mongodb aggregation-framework
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 中使用。
【讨论】: