プライマリ・インデックス

プライマリ・インデックス機能
#名前の通り

ソート順

順番

#最初に実施されるソートのタイプ
null
false
true

#次の数字
1
10
4.0

#次のテキスト
"a"
#同じ文字であれば小文字一番、大文字二番
"A"
"aa"
"b"
"B"
"ba"
"bb"

#次の配列
["a"]
["b"]
#違う要素と比較されるまでソートされた要素
["b","c"]
["b","c", "a"]
["b","d"]
["b","d", "e"]

#最後にオブジェクト、キー・バリューのリストを違うリストと比較されるまでソートする
{a:1}
{a:2}
{b:1}
{b:2}
{b:2, a:1}
{b:2, c:2}

animaldbドキュメント内容

$ curl https://{アカウント名}:{パスワード}@{アカウント名}.cloudant.com/animaldb/_all_docs

返却値

{
  "total_rows":11,
  "offset":0,
  "rows":[
    {"id":"_design\/views101","key":"_design\/views101","value":{"rev":"12-dfa39d5771438be0671b9aeb9cfaf03f"}},
    {"id":"aardvark","key":"aardvark","value":{"rev":"3-fe45a3e06244adbe7ba145e74e57aba5"}},
    {"id":"badger","key":"badger","value":{"rev":"4-51aa94e4b0ef37271082033bba52b850"}},
    {"id":"elephant","key":"elephant","value":{"rev":"3-f812228f45b5f4e496250556195372b2"}},
    {"id":"giraffe","key":"giraffe","value":{"rev":"3-7665c3e66315ff40616cceef62886bd8"}},
    {"id":"kookaburra","key":"kookaburra","value":{"rev":"4-6038cf35dfe1211f85484dec951142c7"}},
    {"id":"lemur","key":"lemur","value":{"rev":"3-552d9dbf91fa914a07756e69b9ceaafa"}},
    {"id":"llama","key":"llama","value":{"rev":"4-631ea89ca94b23a3093c1ef7dfce10e0"}},
    {"id":"panda","key":"panda","value":{"rev":"2-f578490963b0bd266f6c5bbf92302977"}},
    {"id":"snipe","key":"snipe","value":{"rev":"3-4b2fb3b7d6a226b13951612d6ca15a6b"}},
    {"id":"zebra","key":"zebra","value":{"rev":"3-750dac460a6cc41e6999f8943b8e603e"}}
  ]
}

検索オプション

limit : 返却値を制限する
skip: 指定の返却値を飛ばす(ページネーションなどに使うとよし)

skip

$ curl https://{アカウント名}:{パスワード}@{アカウント名}.cloudant.com/animaldb/_all_docs?skip=5

返却値

{
  "total_rows":11,
  "offset":5,
  "rows":[
    {"id":"kookaburra","key":"kookaburra","value":{"rev":"4-6038cf35dfe1211f85484dec951142c7"}},
    {"id":"lemur","key":"lemur","value":{"rev":"3-552d9dbf91fa914a07756e69b9ceaafa"}},
    {"id":"llama","key":"llama","value":{"rev":"4-631ea89ca94b23a3093c1ef7dfce10e0"}},
    {"id":"panda","key":"panda","value":{"rev":"2-f578490963b0bd266f6c5bbf92302977"}},
    {"id":"snipe","key":"snipe","value":{"rev":"3-4b2fb3b7d6a226b13951612d6ca15a6b"}},
    {"id":"zebra","key":"zebra","value":{"rev":"3-750dac460a6cc41e6999f8943b8e603e"}}
  ]
}

limit

$ curl https://{アカウント名}:{パスワード}@{アカウント名.cloudant.com/animaldb/_all_docs?limit=2

返却値

{
  "total_rows":11,
  "offset":0,
  "rows":[
    {"id":"_design\/views101","key":"_design\/views101","value":{"rev":"12-dfa39d5771438be0671b9aeb9cfaf03f"}},
    {"id":"aardvark","key":"aardvark","value":{"rev":"3-fe45a3e06244adbe7ba145e74e57aba5"}}
  ]
}

limit + skip

skip+limitでも同じ結果
&をエスケープする

$ curl https://{アカウント名}:{パスワード}@{アカウント名}.cloudant.com/animaldb/_all_docs?limit=3\&skip=3

返却値

{
  "total_rows":11,
  "offset":0,
  "rows":[
    {"id":"elephant","key":"elephant","value":{"rev":"3-f812228f45b5f4e496250556195372b2"}},
    {"id":"giraffe","key":"giraffe","value":{"rev":"3-7665c3e66315ff40616cceef62886bd8"}},
    {"id":"kookaburra","key":"kookaburra","value":{"rev":"4-6038cf35dfe1211f85484dec951142c7"}}
  ]
}
startkey(始まりのテキスト) + endkey(終わりのテキスト)

&はエスケープが必要

$ curl https://{アカウント名}:{パスワード}@{アカウント名}.cloudant.com/animaldb/_all_docs?startkey=\"d\"\&endkey=\"giraffe\"

返却値

{
  "total_rows":11,
  "offset":7,
  "rows":[
    {"id":"elephant","key":"elephant","value":{"rev":"3-f812228f45b5f4e496250556195372b2"}},
    {"id":"giraffe","key":"giraffe","value":{"rev":"3-7665c3e66315ff40616cceef62886bd8"}}
  ]
}
key
$ curl https://{アカウント名}:{パスワード}@{アカウント名}.cloudant.com/animaldb/_all_docs?key=\"llama\"

返却値

{
  "total_rows":11,
  "offset":10,
  "rows":[
    {"id":"llama","key":"llama","value":{"rev":"4-631ea89ca94b23a3093c1ef7dfce10e0"}}
  ]
}

一覧

$ curl https://{アカウント名}:{パスワード}@{アカウント名}.cloudant.com/animaldb/llama

返却値

{
  "_id":"llama",
  "_rev":"4-631ea89ca94b23a3093c1ef7dfce10e0",
  "min_weight":130,
  "max_weight":200,
  "min_length":1.6999999999999999556,
  "max_length":1.8000000000000000444,
  "latin_name":"Lama glama",
  "wiki_page":"http:\/\/en.wikipedia.org\/wiki\/Llama",
  "class":"mammal",
  "diet":"herbivore"
}
include_docs

レコード全部を取得する

$ curl https://{アカウント名}:{パスワード}@{アカウント名}.cloudant.com/animaldb/_all_docs?limit=2\&skip=3\&include_docs=true

返却値

{
  "total_rows":11,
  "offset":3,
  "rows":[
    {"id":"elephant","key":"elephant","value":{"rev":"3-f812228f45b5f4e496250556195372b2"},
    "doc":  
      {"_id":"elephant","_rev":"3-f812228f45b5f4e496250556195372b2","wiki_page":"http:\/\/en.wikipedia.org\/wiki\/African_elephant","min_weight":4700,"max_weight":6050,"min_length":3.2000000000000001776,"max_length":4,"class":"mammal","diet":"herbivore"}},
  {"id":"giraffe","key":"giraffe","value":{"rev":"3-7665c3e66315ff40616cceef62886bd8"},
  "doc":
      {"_id":"giraffe","_rev":"3-7665c3e66315ff40616cceef62886bd8","min_weight":830,"min_length":5,"max_weight":1600,"max_length":6,"wiki_page":"http:\/\/en.wikipedia.org\/wiki\/Giraffe","class":"mammal","diet":"herbivore"}
      }
  ]
}
配列をPOSTして抽出する
$ curl -d '{"keys": ["elephant", "snipe", "panda"]}' -X POST https://{アカウント名}:{パスワード}@{アカウント名}.cloudant.com/animaldb/_all_docs -H "Content-Type:application/json"

返却値

{
  "total_rows":11,
  "offset":0,
  "rows":[
    {"id":"elephant","key":"elephant","value":{"rev":"3-f812228f45b5f4e496250556195372b2"}},
    {"id":"snipe","key":"snipe","value":{"rev":"3-4b2fb3b7d6a226b13951612d6ca15a6b"}},
    {"id":"panda","key":"panda","value":{"rev":"2-f578490963b0bd266f6c5bbf92302977"}}
  ]
}