在mongodb中添加一分钟到日期字段

时间:2015-10-01 14:28:08

标签: javascript mongodb meteor

渲染我的模板时,我会在null集合中创建一个计划。数据如下:

{
  _id: "someid",
  day: "Saturday",
  start: Date,
  end: Date,
  jobs: [{
    _id: '123',
    start: Date,
    end: Date
  }, {
    _id: '567',
    start: Date,
    end: Date
  }]
}

每一分钟,我都希望将每个条目更新为日期加上一分钟。我可以做以下

Template.schedule.onCreated(function () {
  Meteor.setInterval(function () {
    DaySchedule.update({}, {
      $inc: {
        'start': ???,
        'end': ???,
        'cycles.start': ???,
        'cycles.end': ???
      },
    });
  });
});

如何使用mongodb完成这项工作?

2 个答案:

答案 0 :(得分:3)

日期和时间的

$inc尚未实施:SERVER-3174

因此,最好的办法是在应用中计算新值,然后执行$set

答案 1 :(得分:0)

您可以将日期保存为整数表示而不是Date对象,并使用$ inc进行递增。当消费时,您将检索该号码并转为日期。

您可以随时使用$set,如Sergio的答案所示。

但是,每分钟对数据库执行一次操作以及有一些已知值并不是一个好主意。我的意思是在这些逻辑中存储这样的价值是没有意义的。