Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检索azure移动服务表的行位置_Javascript_Azure Mobile Services - Fatal编程技术网

Javascript 如何检索azure移动服务表的行位置

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(... 但我想检索当前用户在世界排名中的位置

Im使用Azure移动服务(在HTML客户端中)实现简单的记分墙应用程序

首先,应用程序将获得前100名分数

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"
    }
}