2016-10-18 46 views
0

我試圖從couchbase文檔執行以下代碼,但得到此錯誤。Couchbase返回一個創建mapreduce視圖和空間視圖時,一個設計文檔可能只包含mapreduce或空間視圖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

要調用2個功能,DefaultView.create和SpatialView.create

在早期版本的Couchbase Server時,空間的觀點是開發者預覽這會工作。當空間視圖在4.0中作爲GA引入時,添加了一個限制,即在同一設計文檔中不能同時使用Map Reduce Views和Spatial Views。

您需要使用2個不同的設計文檔,其中1個用於縮小「默認」視圖,另一個用於空間視圖。

請參閱https://issues.couchbase.com/browse/MB-15256 我也提前創建了https://issues.couchbase.com/browse/DOC-1836以獲取固定的文檔。

相關問題