У меня есть проблема:
У меня есть набор документов, которые представляют собой «завершение задачи».
Каждому такому завершению назначен пользователь, и время завершения потребовалось.
Мне нужно сгруппировать свои документы по пользователю, а затем отсортировать их по накопленному времени, и это прекрасно работает:
const chartsAggregation = [
{
$group: {
_id: '$user',
totalTime: { $sum: '$totalTime' },
},
},
{
$sort: {
totalTime: -1,
},
},
{
$addFields: {
placement: { $inc: 1 }, // This does not work
},
},
];
Однако мне нужно «сжечь» размещение после сортировки, так сказать, «ранг».
Причина в том, что я хочу отображать как «страницу с диаграммами» людей, которые больше всего занимали время на вершине. Эта страница должна быть доступна для поиска и разбивки на страницы, чтобы люди находили себя и свое размещение.
Поскольку мне нужно выполнить поисковые запросы и ограничения (для разбивки на страницы) позже, фактические позиции моих пользователей в результирующем массиве бесполезно для меня.
Я хочу добавить поле (я пробовал это в части $ addFields -), которое связывает размещение в списке с набором данных, так что даже если я позже отфильтрую и ограничу результаты Исходное размещение не повреждено.
Все, что мне для этого нужно, - это добавить счетчик приращений в операторе $ addFields -, но я не могу найти способ сделать это. Кажется, в документации ничего подобного нет.
Можете ли вы мне помочь?