#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
]
}
}
}
}
}
}