代码之家  ›  专栏  ›  技术社区  ›  Muirik

将当前日期应用于MongoDB聚合中的公式

  •  0
  • Muirik  · 技术社区  · 6 年前

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

    我有一个javascript脚本,它使用聚合管道创建视图。我使用javascript方法-new 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的 '系统日期' ? 我不想每次想读视图时都执行重新创建视图的脚本。

    0 回复  |  直到 7 年前
        1
  •  1
  •   Smortop    7 年前

    看来MongoDB 3.7正在开发这个功能。
    https://jira.mongodb.org/browse/SERVER-23656