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.4. クエリでのグループ化

9.8.4.1. グループ化するときの選択肢

ビュー内の複合キーとして配列が指定されている場合、reduce()を使用するとき、クエリ出力を適用するグループレベルを指定することができます。

グループ化が有効になっている場合、ビューの出力は、キー配列に応じてグループ分けされており、その情報をグループ化するために定義済み配列内のレベルを指定することができます。group_levelパラメータを使用して配列内のインデックスを指定してグループ化します。図9.14「ビューのグループ化」に詳細が記載されています。

図9.14 ビューのグループ化

ビューのグループ化

group_levelパラメータはグルーピングしたい(1から始まる)配列のインデックスを指定し、ビュー出力ですべてのアイテムを識別するための値に基づいた一意な値を生成します:

グルーピングは、出力値がキーとなるような配列を使用して複合キーを出力するようなところでの出力構造として作用します。

9.8.4.1. グループ化するときの選択肢

keykeys、もしくはstartkey/endkeyパラメータを使用してグルーピングや選択をするとき、クエリ値は少なくともクエリされるグループレベルの形式(と要素数)が一致します。

たとえば、日付配列による情報を出力するために、次のようにmap()関数を使用すると:

Javascript
function(doc, meta) 
{
  emit([doc.year, doc.mon, doc.day], doc.logtype);
}

group_level2を指定する場合、少なくとも年、月の情報を使用してキーを指定しなければなりません。たとえば、[2012,8]のように明示的なキーを指定できます:

?group=true&group_level=2&key=[2012,8]

または範囲:

?group=true&group_level=2&startkey=[2012,2]&endkey=[2012,8]

高いレベルでグループ化しながら、年、月、日を指定することもできます。たとえば、特定の日付で選択しながら、年/月でグループ化するには:

?group=true&group_level=2&startkey=[2012,2,15]&endkey=[2012,8,10]

グループレベルよりも短い複合キーを指定すると、選択メカニズムと、startkeyendkeyが出力する行の選択を開始、終了するために利用されるという方法のために、予期せぬ結果を出力することがあります。