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 ビューとインデックス
Chapter Sections
Chapters

9.5. ビューの記述

9.5.1. Map関数
9.5.2. reduce関数
9.5.3. 非JSONデータのビュー
9.5.4. ビルトインユーティリティ関数
9.5.5. ビューの記述のベストプラクティス

ビューの基本は単純です。ビューはCouchbaseバケットに保存されたデータに対して、データベース内のデータ内容をもとに、情報を定義し、フィルタして、検索やクエリを提供する、データを特別な方法で表現する形式の切り口を作成します。ビュー作成のプロセスでは、アウトプットの構造、フィールドの順序、内容や任意のサマリやグルーピングの情報を定義します。

ビューを作成するには、保存されたJSONオブジェクトデータをJSON配列やオブジェクトに変換し、キーとバリューの二つのコンポーネントとして、アウトプットの構造を定義します。この定義は二つの独立したJavaScriptで記述した関数の仕様として実行されます。ビューの定義は、map関数とreduce関数の二つのパーツに分かれています:

mapとreduce関数の組み合わせがビューを生成します。map関数が各JSONドキュメントをベースに初期のマテリアルを生成し、reduce関数がmapフェーズで生成された情報を要約して、この二つの関数が働き合っています。reduce処理の実行はビューをアクセスする際に選択可能で、コンテンツをreduceするかどうかを選択できます。また、キーの配列を指定して、グループ化されたreduceの情報を指定することもできます。

ビュー出力の各行はビューのキーとバリューで構成されています。map関数のみを利用してビューにアクセスする場合、ビューのキーとバリューの内容は、ビューの定義で明示した情報です。このモードでは、ビューは常にidフィールドを含み、このフィールドは元の記録のドキュメントIDを含みます。(つまり、オリジナルのデータレコードを保存するときにIDとして使用していた文字列)

mapとreduce関数の双方を有効にしてビューにアクセスすると、入力で指定したキーとグループレベルに応じたreduce関数結果のキーとバリューが返却されます。複数のレコードがひとつにマージされている場合、reduceされたデータではドキュメントIDが特定できないので、ドキュメントIDは自動的には結果に含まれません。さまざまな明示的あるいは暗黙的な値の例は、二つの関数の詳細として説明されています。

ビュー作成の処理例は下図を参照してください。

図9.8 ビュー — ビュー構築

ビュー — ビュー構築

二つの要素は分離されているので、それぞれの関数を個別に検討できます。

map関数の書き方と、map関数の出力がどのように影響を及ぼし、検索をサポートするかについては、「Map関数」を参照してください。reduce関数の書き方の詳細については、「reduce関数」を参照してください。

注記

ビュー名は、1つまたは複数のUTF-8文字を使用して指定する必要があります。空白ビュー名は使用できません。ビュー名の先頭または末尾に空白文字(スペース、タブ、改行、キャリッジリターン)を使用できません。

ビューを作成するために、管理コンソールのビューエディタ(「ビューエディタの利用」を参照)か、デザインドキュメントのためのREST API(「デザインドキュメントのREST API」を参照)、もしくはビュー管理をサポートするクライアントライブラリのひとつを使用することができます。

詳細な情報および、問い合わせとmapからの情報の取得の仕方については、「ビューへのクエリ」を参照してください。