Node.js Mongoose:将mongo集合的日期字段增加一个月
我需要根据要求按天、周和月更新mongo集合的日期字段。我用下面的代码计算了一天和一周的时间: 第二天设定:Node.js Mongoose:将mongo集合的日期字段增加一个月,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我需要根据要求按天、周和月更新mongo集合的日期字段。我用下面的代码计算了一天和一周的时间: 第二天设定: col.findOneAndUpdate( { _id : item._id } , { $set : { nextRun : new Date(item.nextRun.getTime() + 86400000}} 为下周设置同一天: col.findOneAndUpdate( { _id : item._id } , { $set : { nextRun : new Date(it
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(),但无效。按如下方式添加月份:
var nextRunDate = new Date(item.nextRun);
nextRunDate.setMonth(nextRunDate.getMonth() + 1);
col.findOneAndUpdate(
{ _id : item._id },
{ $set : { nextRun : nextRunDate } }
);
一个更好的方法是使用一个日期处理库,比如,您可以使用方法
var nextRunDate = moment(item.nextRun).add(1, 'months').toDate();
col.findOneAndUpdate(
{ _id : item._id },
{ $set : { nextRun : nextRunDate } }
);
如何在不更改现有时间的情况下将日期增加1天?请不要说我想更新很多文档,而不仅仅是一个。