创建一个取决于当前时间的mongo视图

时间:2018-02-05 15:41:00

标签: javascript mongodb date view aggregation

我有一个具有日期字段的集合,我想创建一个mongo视图,按当前日期过滤所有文档。例如,我希望我的视图包含过去7天的所有文档。

我有一个javascript脚本,可以使用聚合管道创建视图。我使用javascript方法 - 新的Date()来编写过去7天的条件:

{
  "$lt": [
     {"$subtract": [new Date(), "$DateOfDocument"]}, // difference in milliseconds
      1000 * 60 * 60 * 24 * 7              // 7 days in milliseconds
  ]
}

但是当我执行创建视图的脚本时,mongo计算'new Date()'而不是创建视图,结果为'new Date()'为ISODate。 现在,聚合管道会在上次执行脚本时计算视图,而不是按实际当前日期计算。

{
  "$lt": [
      {"$subtract": [ISODate("2018-02-05T06:52:32.10+0000"), "$DateOfDocument"]},
      604800000
  ]
}

有没有办法让当前日期过滤的视图?当前日期的任何聚合方法,如oracle的'sysdate'?每次我想要阅读视图时,我都不想执行重新创建视图的脚本。

1 个答案:

答案 0 :(得分:1)

看起来这个功能正在为MongoDB 3.7工作。
https://jira.mongodb.org/browse/SERVER-23656