Node.js Mongoose:将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

我需要根据要求按天、周和月更新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(),但无效。

按如下方式添加月份:

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天?请不要说我想更新很多文档,而不仅仅是一个。