leaderboard
ビューはプレイヤーと、各プレイヤーの現在のスコアのリストを生成するように設計されています:
function (doc) { if (doc.jsonType == "player") { emit(doc.experience, null); } }
ビューでは jsonType
が"player"であるレコードの場合に、各プレイヤーレコードのexperience
フィールドをemitします。ビューからの出力は自然にキーの値でソートされているので、ビューの出力は、プレイヤーのスコアによってソートされたプレイヤーのリストになります。例:
{ "total_rows" : 81, "rows" : [ { "value" : null, "id" : "Bob0", "key" : 1 }, { "value" : null, "id" : "Dustin2", "key" : 1 }, … { "value" : null, "id" : "Frank0", "key" : 26 } ] }
高得点のトップ10プレイヤーを取得するには、例えばdescending=true
を使用して、ソート順を反転させるリクエストを送ります:
http://127.0.0.1:8092/gamesim-sample/_design/dev_players/_view/leaderboard?descending=true&connection_timeout=60000&limit=10&skip=0
次の結果が返却されます:
{ "total_rows" : 81, "rows" : [ { "value" : null, "id" : "Tony0", "key" : 23308 }, { "value" : null, "id" : "Sharon0", "key" : 20241 }, { "value" : null, "id" : "Damien0", "key" : 20190 }, … { "value" : null, "id" : "Srini0", "key" : 17459 }, { "value" : null, "id" : "Aliaksey1", "key" : 17263 } ] }