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
9.8 ビューへのクエリ
Chapter Sections
Chapters

9.8.1. REST APIを使用した問い合わせ

問い合わせはREST APIエンドポイントを指定して実行することができます。REST APIは主要なHTTPプロトコルに対応しています。そしてこれはクライアントライブラリがビューのデータを取得するのに利用するものと同じシステムです。

REST APIを使用すると、ポート8092上のCouchbase Serverクラスタ内の任意のノードへアクセスして、ビューに問い合わせすることができます。例:

HTTP Request
GET http://localhost:8092/bucketname/_design/designdocname/_view/viewname

ここで:

SASLパスワードで保護されたバケット内に格納されているビューにアクセスするとき、リクエストのURLにバケットの名前とパスワードを含めなければなりません。

HTTP Request
GET http://bucketname:password@localhost:8092/bucketname/_design/designdocname/_view/viewname

URLリクエストへの追加の引数として、ビューから情報を選択すること、limit(出力するアイテムの数を指定すること)、ソートすることやその他オプションを指定することができます。たとえば、10アイテムだけを出力するには:

HTTP Request
GET http://localhost:8092/bucketname/_design/designdocname/_view/viewname?limit=10

URLのフォーマットは、HTTPの仕様に従います。最初の引数は、疑問符(?)を使用して、ベースURLと区切ります。追加の引数は、アンパサンド(&)を使用して、区切ります。特殊文字は、HTTPの標準規則に従って引用符で囲むかエスケープする必要があります。

その他のサポートされている引数は、以下の表に詳述されています。

メソッドGET /bucket/_design/[デザインドキュメント]/_view/[ビュー名]
リクエストデータなし
レスポンスデータビューから返される行のJSON
認証情報の要否不要
クエリ引数 
descendingキーの降順でドキュメントを返します
 パラメータ:真偽、任意
endkey指定したキーになったときにレコードの返却を停止します。キーはJSON値で指定する必要があります
 パラメータ:文字列、任意
endkey_docid指定したドキュメントIDになったときにレコードの返却を停止します
 パラメータ:文字列、任意
full_setすべてのクラスタデータセットを使用します(開発ビューのみ)
 パラメータ:真偽、任意
groupグループもしくは単一行にreduce関数を使用して結果をグループ化します
 パラメータ:真偽、任意
group_level使用するグループレベルを指定します
 パラメータ:数値、任意
inclusive_end指定した終了キーの結果を含むかどうかを指定します
 パラメータ:真偽、任意
key指定したキーに一致するドキュメントのみを返します。キーはJSON値で指定する必要があります
 パラメータ:文字列、任意
keys配列内で指定したキーのどれかに一致するドキュメントのみを返します。キーはJSON値で指定する必要があります。このオプションを指定するときはソートが適用されません。
 パラメータ:配列、任意
limit指定した数字で返却するドキュメントの数を制限します
 パラメータ:数値、任意
on_errorエラー発生時のレスポンスを設定します
 パラメータ:文字列、任意
 サポートされる値
 continue:エラー発生時もビュー情報の生成を続け、ビュー応答のストリーム内にエラー情報を含みます
 stop:エラーが発生するとすぐに停止し、ビュー情報として何も返しません
reducereduce関数を使用します
 パラメータ:真偽、任意
skip結果を返し始める前にこの数のレコードをスキップします
 パラメータ:数値、任意
stalestaleビューからの結果を使用できるようにします
 パラメータ文字列、任意
 サポートされる値
 false:結果を返す前にビューインデックスを強制的に更新します
 ok:staleビューを許可します
 update_after:staleビューを許可し、アクセス後ビューを更新します
startkey指定したキー以上のレコードを返します。キーはJSON値で指定する必要があります
 パラメータ:文字列、任意
startkey_docid指定したドキュメントIDで始まるレコードを返します
 パラメータ:文字列、任意

ビューからの出力は、ビュー内の行数についての情報、および個々のビューの情報を含むJSON構造です。

ビューの結果の例を以下に示します:

JSON
{
  "total_rows": 576,
  "rows" : [
      {"value" : 13000, "id" : "James", "key" : ["James", "Paris"] },
      {"value" : 20000, "id" : "James", "key" : ["James", "Tokyo"] },
      {"value" : 5000,  "id" : "James", "key" : ["James", "Paris"] },

    ]
}

返されるJSONは2つのフィールドから成ります:

エラーが発生した場合、HTTPレスポンスは、(200ではない)エラーの種類になり、JSONの構造は、基本的なerrorと、より詳細なreasonの2つのフィールドを含んで返されます。例:

JSON
{
  "error":"bad_request",
  "reason":"invalid UTF-8 JSON: {{error,{1,\"lexical error: invalid char in json text.\\n\"}},\n                     \"Paris\"}"
}

注記

クエリに不正なパラメータを指定した場合、エラーメッセージがサーバから返されます。クライアントライブラリ内での正確な動作は個々の言語の実装間で異なるかもしれませんが、すべての場合において、無効なクエリは適切なエラーまたは例外を生成します。

各パラメータの詳細、および相互作用の特定の領域は、次のセクション内で補足されています。これはすべてのクライアントライブラリインタフェースに適用されます。