收藏
回答

望官方能看看该问题。云开发根据两个条件实时排名问题,怎么搞?求大神们来瞄一眼。

[

{ id: 1, time: 16, number: 30 },

{ id: 2, time: 10, number: 37 },

{ id: 3, time: 12, number: 25 },

{ id: 4, time: 12, number: 29 },

{ id: 5, time: 12, number: 35 },

{ id: 6, time: 13, number: 39 },

{ id: 7, time: 15, number: 35 },

{ id: 8, time: 14, number: 33 },

]


规则:time越小排名越靠前(升序)。time相同时,number越小排名越靠前(升序)。(因为排名是实时的,不能把排名固定在数据库。)

例如:上图所示,我求id为4的排名。答案应该是第三名。

我的实现方式:我用了一个比较笨的方法也能实现。就是笨了一点。

先用 time:_lt(12),返回 totalx = 1。

然后再查time = 12,number:_lt(29),返回totaly = 1。

所以是(totalx+totaly+1)。表示我排名前面有2个,我在第3。

我还要获取id为4的数据,所以为了获取id为4 的数据和排名就查询了3次数据库。

求:其它更优的方法。



最后一次编辑于  09-05  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

1 个回答

问题标签