MongoDB: вычесть месяцы из даты со значением из базы данных - PullRequest
0 голосов
/ 04 октября 2019

Возможно ли в MongoDB как-то вычесть только месяцы из даты со значением из того же документа. Так, например, я должен вычесть дату из поля «valid_to» с месяцами из поля «offset», нужно изменить только месяцы. Так, например:

  1. 2019-11-25 - 3 месяца = 2019-08-25

  2. 2019-12-20 - 5 месяцев= 2019-07-20

Документов в коллекции:

    {
        "_id" : ObjectId("5d96f027ad768a1532aa2698"),
        "name" : "Q1",
            "valid_to" : ISODate("2019-11-25T14:36:32.221+01:00"),
        "offset" : 3,

    },
    {
        "_id" : ObjectId("5d96f027ad768a1532aa2699"),
        "name" : "Q2",
            "valid_to" : ISODate("2019-12-20T14:36:32.221+01:00"),  
            "offset" : 5,
    }

Я попробовал в качестве примера использовать функцию даты в JavaScript и взять текущую дату и вычесть месяцы, но этоне работает, как это

        {
            $project: {
                "subtractedDate": new Date(new Date().setMonth({ $subtract: [new Date().getMonth(), "$offset"] }))
            }
        },
    ])

В результате я получаю ISODate("1970-01-01T01:00:00.000+01:00")

...