我有问题:
我有一组代表“任务完成”的文档。
每个此类完成都分配了一个用户,以及完成所花费的时间。
我需要按用户对我的文档进行分组,然后按累计时间对其进行排序,这很正常:
const chartsAggregation = [
{
$group: {
_id: '$user',
totalTime: { $sum: '$totalTime' },
},
},
{
$sort: {
totalTime: -1,
},
},
{
$addFields: {
placement: { $inc: 1 }, // This does not work
},
},
];
但是,我需要在排序后“烙印”展示位置,可以说是“排名”。
原因是,我想与花费最多时间的人一起显示“图表页面”。此页面需要可搜索和分页,以便人们找到自己及其位置。
由于稍后需要进行搜索查询和限制(用于分页),因此用户在结果数组中的实际位置对我没有用。
我想添加一个字段(我在$ addFields-部分中尝试过此操作),该字段将列表中的展示位置与数据集相关联,因此,即使我稍后过滤并限制结果,原始的展示位置也保持不变。
我所需要做的就是在$ addFields-语句中添加一个递增计数器,但是我找不到解决方法。文档中似乎没有类似的东西。
你能帮我吗?