一个设计文档可能只包含mapreduce视图或空间视图,同时创建mapreduce视图和空间视图时,Couchbase错



我试图从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或空间视图"。请帮助

您正在调用两个函数,DefaultView。create and SpatialView.create

在早期版本的Couchbase Server中,当空间视图是开发人员预览时,这是可以工作的。当空间视图作为GA在4.0中引入时,添加了一个限制,即你不能在同一个设计文档中同时拥有地图缩减视图和空间视图。

你需要使用2个不同的设计文档,一个用于Map Reduce"默认"视图,另一个用于空间视图。

见https://issues.couchbase.com/browse/mb - 15256我还创建了https://issues.couchbase.com/browse/DOC-1836来修复文档。

最新更新