Запрос MongoDB для обновления поля даты в документе с другим полем даты плюс 1 день - PullRequest
0 голосов
/ 10 февраля 2019

Я пытаюсь обновить поле даты (скажем, nextChargeDate) в нескольких документах в коллекции с другим полем даты (скажем, currentTermEndDate) в том же документе , увеличиваяcurrentTermEndDate на 1 день .

Вот функция обновления, которую я написал:

db.some_collection.updateMany (

{$or: [{_id: ObjectId('5c3e62ef2e9c4e0008f4749f')}, {_id: ObjectId('5c3e635a2e9c4e0008f47852')}, {_id: ObjectId('5c3e63a12e9c4e0008f47ab9')}]},
{
    $set: { **nextChargeDate: new Date({$add: [ "currentTermEndDate", 1*24*60*60000 ]}**)  }
}

)

Вот как выглядит обновление в Mongo:

currentTermEndDate: 2019-04-04 23: 59: 59.999

nextChargeDate: 1969-12-31 18: 00: 00.000

Было бы очень полезно, если бы кто-то мог помочь с решением для достижения желаемого результата, который будет:

currentTermEndDate: 2019-04-04 23: 59: 59.999

nextChargeDate: 2019-04-05 23: 59: 59,999

Заранее спасибо.

1 Ответ

0 голосов
/ 10 февраля 2019

Вам нужно принять дату как ISODate("dateField").getTime().Попробуйте следующий запрос: -

    {$or: [{_id: ObjectId('5c3e62ef2e9c4e0008f4749f')}, {_id: ObjectId('5c3e635a2e9c4e0008f47852')}, {_id: ObjectId('5c3e63a12e9c4e0008f47ab9')}]},
{
    $set: { "nextChargeDate": new Date(ISODate("currentTermEndDate").getTime()+ 1*24*60*60000)  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...