2016-05-23 35 views
1

我需要根據需要更新一天,一週和一個月的mongo集合的日期字段。我計算出來的一天,周與下面的代碼:Mongoose:將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- -24T11:30:00.000Z,則更新應將其更改爲2016- -24T11:30:00.000Z。

嘗試與getMonth()但它沒有工作。

回答

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 } } 
); 
相關問題