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

Add one minute to a date field in mongodb

本文关键字:添加 一分钟 字段 日期 mongodb      更新时间:2023-09-26

在呈现模板时,我在空集合中创建一个时间表。数据如下所示:

{
  _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?

$inc的日期和时间尚未实现:SERVER-3174.

所以你最好的办法是在你的应用程序中计算新的值,然后做$set

您可以将日期保存为整数形式而不是date对象,并使用$inc进行递增。当使用时,您将检索数字并将其转换为日期。

你可以像Sergio的答案那样使用$set

然而,对于某种已知值,每分钟对数据库执行一次操作并不是一个好主意。我的意思是,在这种逻辑中存储这样的值是没有意义的