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.10 Map/ReduceへのSQLの翻訳
Chapter Sections
Chapters

9.10.1. Map/ReduceへのSQL フィールド選択(SELECT)の翻訳

SQLクエリでのフィールド選択は、(値がWHERE句内の選択にも利用される場合)出力するキーにフィールドを追加することによって、またはデータが必要としているクエリパラメータとは独立している場合、値として出力するかのどちらかで、対応するビュー定義に翻訳することができます。

たとえば、格納された各ドキュメントから次のmap()関数を使用して国別の売上データを取得するには:

Javascript
function(doc, meta) {
  emit([doc.city, doc.sales], null);
}

reduce関数内で使用される情報を出力したい場合、これはemit()の各呼び出しによって生成された値で指定するべきです。たとえば、売上高をreduceするためには、上記map()関数を次のように書き換えます:

Javascript
function(doc, meta) {
  emit(doc.city, doc.sales);
}

出力は対して変わりませんが (キーは単純化されていますが)、数値を使用して情報をreduceすることができるようになります。

クエリの値から出力データやフィールドの値を完全に分離したい場合、これらのフィールドをビューの値の一部として明示的に出力できます。例:

Javascript
function(doc, meta) {
  emit(doc.city, [doc.name, doc.sales]);
}

各アイテムでドキュメント全体が必要な場合、クライアントライブラリを介してビューをリクエストしたあとに、ドキュメントデータをロードしてください。このパラメータと性能への影響の詳細については、「ビューの記述のベストプラクティス」を参照してください。

注記

SELECT文の中では、出力に指定されたレコードの主キーを含むことは一般的な事例です。各行で生成されるドキュメントIDがビューの出力にいつも含まれているので、ビューの中ではこれは通常必要ありません。