Как найти различия между всеми датами в массиве дат, используя конвейеры агрегации Mongo

#aggregation-framework

Вопрос:

Я пытаюсь найти разницу между каждой датой в массиве дат и сохранить ее как новый массив. Допустим, у меня есть массив в документе mongo:

даты: [дата1, дата2, дата3, дата4, дата5]

И я хочу вернуть новый массив с различиями между этими датами в днях:

Различия в датах: [(что угодно), (дата2-дата1), (дата3-дата2), (дата4-дата3), (дата5-дата4) ]

Я пробовал использовать оператор $map с $indexOfArray и еще не понял этого.

Если это поможет, вот как я это сделал:

 {
  "$addFields":{
    "timeDifferencesInSeconds":{
      "$map":{
        "input":"$startDates",
        "as":"startDate",
        "in":{
          "$round":{
            "$divide":[
              {
                "$subtract":[
                  "$startDate",
                  {
                    "$arrayElemAt":[
                      "$startDates",
                      {
                        "$subtract":[
                          {
                            "$indexOfArray":[
                              "$startDates",
                              "$startDate"
                            ]
                          },
                          1.0
                        ]
                      }
                    ]
                  }
                ]
              },
              1000.0
            ]
          }
        }
      }
    }
  }
}