以前のcouchbase関連の質問から、Java SDKを使用しているようですか? SDK の 1.4 行と 2.0 行の両方で、設計ドキュメントとビューをプログラムで作成できます。
Java SDK 1.4.x を使用
ビュー定義 (map 関数、reduce 関数、それらを配置する設計ドキュメント) を文字列としてロードする必要があります。http://docs.couchbase.com/couchbase-sdk-java-1.4/#design-documentsのドキュメントを参照してください。
基本的に、 を介してデータベースに挿入するViewDesign
を作成します。DesignDocument
CouchbaseClient
DesignDocument designDoc = new DesignDocument("beers");
designDoc.setView(new ViewDesign("by_name", "function (doc, meta) {" +
" if (doc.type == \"beer\" && doc.name) {" +
" emit(doc.name, null);" +
" }" +
"}"));
client.createDesignDoc(designDoc);
Java SDK 2.0.x を使用
同様に、ビュー定義 (map 関数、reduce 関数、それらを配置する設計ドキュメント) を文字列としてロードする必要があります。
次に、 を処理してDesignDocument
追加DefaultView
し、 を介して設計ドキュメントをバケットに挿入しBucket
ますBucketManager
。
List<View> viewsForCurrentDesignDocument = new ArrayList<View>(viewCountForCurrentDesignDoc);
//... for each view definition you loaded
View v = DefaultView.create(viewName, viewMapFunction, viewReduceFunction);
viewsForCurrentDesignDocument.add(v);
//... then create the designDocument proper
DesignDocument designDocument = DesignDocument.create(designDocName, viewsForCurrentDesignDocument);
//optionally you can insert it as a development design doc, retrieve an existing one and update, etc...
targetBucket.bucketManager().insertDesignDocument(designDocument);