Search:

Search all manuals
Search this manual
Manual
Couchbase Server マニュアル 2.0
Community Wiki and Resources
Couchbase Server 2.0をダウンロード
Couchbase 開発者ガイド 2.0
クライアントライブラリ
Couchbase Server フォーラム
Additional Resources
Community Wiki
Community Forums
Couchbase SDKs
Parent Section
C.1 ゲームシミュレーションのサンプルバケット
Chapter Sections
Chapters

C.1.1. leaderboardビュー

leaderboardビューはプレイヤーと、各プレイヤーの現在のスコアのリストを生成するように設計されています:

function (doc) {
  if (doc.jsonType == "player") {
  emit(doc.experience, null);
  }
}

ビューでは jsonTypeが"player"であるレコードの場合に、各プレイヤーレコードのexperienceフィールドをemitします。ビューからの出力は自然にキーの値でソートされているので、ビューの出力は、プレイヤーのスコアによってソートされたプレイヤーのリストになります。例:

JSON
{
   "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

次の結果が返却されます:

JSON
{
   "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
      }
   ]
}