我需要根据需要按天,周和月更新mongo集合的日期字段。我用以下代码计算了一天和一周:
设定第二天:
col.findOneAndUpdate(
{ _id : item._id }
, { $set : { nextRun : new Date(item.nextRun.getTime() + 86400000}}
设定下周的同一天:
col.findOneAndUpdate(
{ _id : item._id }
, { $set : { nextRun : new Date(item.nextRun.getTime() + (86400000*7))}}
如何以类似方式更新月份?
注意:我不想乘以30,因为如果当前月份有31天,更新字段会减少一天。
例如如果该字段具有值2016- 05 -24T11:30:00.000Z,则更新应将其更改为2016- 06 -24T11:30:00.000Z。
尝试使用 getMonth(),但它无效。
答案 0 :(得分:1)
按如下方式添加月份:
var nextRunDate = new Date(item.nextRun);
nextRunDate.setMonth(nextRunDate.getMonth() + 1);
col.findOneAndUpdate(
{ _id : item._id },
{ $set : { nextRun : nextRunDate } }
);
更好的方法是使用日期处理库,例如moment,您可以使用 add()
方法
var nextRunDate = moment(item.nextRun).add(1, 'months').toDate();
col.findOneAndUpdate(
{ _id : item._id },
{ $set : { nextRun : nextRunDate } }
);