Javascript 如何检索azure移动服务表的行位置
Im使用Azure移动服务(在HTML客户端中)实现简单的记分墙应用程序 首先,应用程序将获得前100名分数Javascript 如何检索azure移动服务表的行位置,javascript,azure-mobile-services,Javascript,Azure Mobile Services,Im使用Azure移动服务(在HTML客户端中)实现简单的记分墙应用程序 首先,应用程序将获得前100名分数 client.getTable("ScoreWall").orderBy("score").take(100).read().then(... 然后显示当前用户位置 client.getTable("ScoreWall").where({"userId":uid}).select("userId","score").read().then(... 但我想检索当前用户在世界排名中的位置
client.getTable("ScoreWall").orderBy("score").take(100).read().then(...
然后显示当前用户位置
client.getTable("ScoreWall").where({"userId":uid}).select("userId","score").read().then(...
但我想检索当前用户在世界排名中的位置。。我没有找到select的任何文档,例如:
select("row_position","userId","score")
如何检索这些数据?想不出一种在查询中实现这一切的好方法,但如果数据集只有100个,那么进行一些后处理不会产生任何重大影响。这是我做的(我在js后端中有了它,因为我有一个可以尝试的后端) 显然,这是一个愚蠢的演示,但它让人明白了重点。结果如下:
{
"results": [
{
"num": 1,
"text": "Angela"
},
{
"num": 2,
"text": "Chris"
},
{
"num": 3,
"text": "John"
},
{
"num": 4,
"text": "Nikesh"
},
{
"num": 5,
"text": "Sarah"
}
],
"sarah": {
"num": 5,
"text": "Sarah"
}
}
在我的示例中,如果要将其扩展到数百万行,则需要考虑几件事(但我可能会使用一个单独的作业来计算top 100并将其转储到表中,或者定期使用rank标记用户对象以解决该比例),但对于100,这是相当不错的。感谢您的评论。但我并不是只有100个数据。该应用程序显示前100个。和用户的位置,它可以是超过第一百的位置,像第九千九百九十九…在这方面,明确地考虑一个预定的工作,更新用户排名。如果您不关心100%的准确度,并且希望最小化负载,那么您可以让作业运行5分钟左右,每次处理1000条记录,用户排名。批处理的原因是您将执行大量的db插入-最好将其分散,因为数据库经常是io绑定的。
{
"results": [
{
"num": 1,
"text": "Angela"
},
{
"num": 2,
"text": "Chris"
},
{
"num": 3,
"text": "John"
},
{
"num": 4,
"text": "Nikesh"
},
{
"num": 5,
"text": "Sarah"
}
],
"sarah": {
"num": 5,
"text": "Sarah"
}
}