Node.js 如何创建按分数和时间排序的排行榜mongodb?

Node.js 如何创建按分数和时间排序的排行榜mongodb?,node.js,mongodb,mongoose,mongodb-query,Node.js,Mongodb,Mongoose,Mongodb Query,我正在尝试实现一个排行榜,它像一个队列,而不是一个记分板 user score time position 1 1 1 1 2 1 2 2 3 0 1 3 4 0 2 4 我的问题是,考虑到时间也被考虑在内,应该如何构造一个查询来获取用户在此队列中的位置,下面描述了一个从集合中获取用户位置的函数: public async position(leaderboardId: string, id:

我正在尝试实现一个排行榜,它像一个队列,而不是一个记分板

user  score  time position
1     1      1    1
2     1      2    2
3     0      1    3
4     0      2    4
我的问题是,考虑到时间也被考虑在内,应该如何构造一个查询来获取用户在此队列中的位置,下面描述了一个从集合中获取用户位置的函数:

public async position(leaderboardId: string, id: any) {
        const user = await this.get(leaderboardId, id);
        return await this.getCollection(leaderboardId).
            find({
                score: {
                    $gt: user.score
                }
            }).
            count() + 1;
    }
但是,如果多个用户具有相同的分数,则意味着所有具有该分数(位置)的用户都将平局,即

如何修改上述查询以实现相应的逻辑? 谢谢

user  score  time position
1     1      1    1
2     1      2    1
3     0      1    3
4     0      2    3