渲染我的模板时,我会在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完成这项工作?
答案 0 :(得分:3)
$inc
尚未实施:SERVER-3174。
因此,最好的办法是在应用中计算新值,然后执行$set
。
答案 1 :(得分:0)
您可以将日期保存为整数表示而不是Date对象,并使用$ inc进行递增。当消费时,您将检索该号码并转为日期。
您可以随时使用$set
,如Sergio的答案所示。
但是,每分钟对数据库执行一次操作以及有一些已知值并不是一个好主意。我的意思是在这些逻辑中存储这样的价值是没有意义的。