Я создал функцию, которая сортирует юзеров по уменьшению значения в поле, а также ищет позицию человека в топе.
const getTop = async (name, userId) => {
const top = await Users.find({ admin: false }, { [name]: 1, id: 1 }).sort({
[`${name}`]: -1,
});
let userPosition = 0;
for (let i = 0; i < top.length; i++) {
const { id } = top[i];
if (id === userId) {
userPosition = i;
break;
}
}
const topUsers = top.slice(0, 10);
return [topUsers, userPosition + 1];
}
Возможно ли изменить ее, что бы она работала быстрее? Мне кажется, что при большом кол-ве человек топ будет составляться большое кол-во времени.
Сразу говорю, что искал в интернете, как узнать номер документа при сортировке, но не нашел никакой информации по этому поводу