我正在尝试从couchbase文档执行以下代码,但收到此错误。
public static void main(String[] args) {
CouchbaseEnvironment env = DefaultCouchbaseEnvironment.builder()
.connectTimeout(100000) //10000ms = 10s, default is 5s
.build();
CouchbaseCluster cluster = CouchbaseCluster.create(env,"127.0.0.1");
Bucket bucket = cluster.openBucket("travel-sample");
BucketManager bucketManager = bucket.bucketManager();
DesignDocument designDoc = DesignDocument.create(
"landmarks",
Arrays.asList(
DefaultView.create("by_country",
"function (doc, meta) { if (doc.type == 'landmark') { emit([doc.country, doc.city], null); } }"),
DefaultView.create("by_activity",
"function (doc, meta) { if (doc.type == 'landmark') { emit(doc.activity, null); } }",
"_count"),
SpatialView.create("by_coordinates",
"function (doc, meta) { if (doc.type == 'landmark') { emit([doc.geo.lon, doc.geo.lat], null); } }")
)
);
bucketManager.insertDesignDocument(designDoc);
}
但是出现此错误"设计文档可能只包含mapreduce或空间视图"。请帮忙
答案 0 :(得分:0)
您正在调用2个函数,DefaultView.create和SpatialView.create
在早期版本的Couchbase Server中,当Spatial Views是开发人员预览版时,这将起作用。当空间视图在4.0中作为GA引入时,添加了一个限制,即您不能在同一设计文档中同时具有地图缩小视图和空间视图。
您需要使用2个不同的设计文档,1个用于Map Reduce“默认”视图,另一个用于Spatial视图。
参见https://issues.couchbase.com/browse/MB-15256 我也继续创建https://issues.couchbase.com/browse/DOC-1836以修复文档。