1

我有一个Ember app,它通过ember-couchdb-kit与Couchbase Lite连接。由include_docs返回的文档结构couchbase

我想在桌面上运行它。过去,我成功地使用了CouchDB,但希望迁移到Couchbase Server以更好地控制数据访问。

Ember-couch-kit依赖于all视图来返回特定类型的元素。例如,我的应用程序有习惯,用于装载这些网址是:

/db/_design/habit/_view/all?include_docs=true&key="habit" 

地图功能看起来像:

function(doc) { emit(doc.type, null) } 

尽我可以告诉,CouchDB的和Couchbase精简版返回的结果形式:

{ 
    "total_rows":19, 
    "offset":0, 
    "rows":[ 
    { 
     "id":"ce236fe89785d8190abc37e01c001087", 
     "key":"habit", 
     "value":null, 
     "doc":{ 
     "_id":"ce236fe89785d8190abc37e01c001087", 
     "_rev":"5-1a6274e9f8020e03277f764fd3fb6bba", 
     "type":"habit", 
     "name":"Test", 
     "color":"#000000", 
     "events":["ce236fe89785d8190abc37e01c00267d",…] 
     } 
    }, 
    ⋮ 

Couchbase Server中,而另一方面,返回格式的文档:

{ 
    "total_rows":1541, 
    "rows":[ 
    { 
     "id":"habit:150mg buoropion", 
     "key":"habit", 
     "value":null, 
     "doc":{ 
     "meta":{ 
      "id":"habit:150mg buoropion", 
      "rev":"1-00000700e0f3239a0000000000000000", 
      "expiration":0, 
      "flags":0 
     }, 
     "json":{ 
      "type":"habit", 
      "name":"150mg Buoropion", 
      "color":"#D4A475" 
     } 
     } 
    }, 
    ⋮ 

有没有办法使用Sync Gateway获得兼容视图?目前,我正在通过将文档作为map的值返回来解决此问题。

回答

0

在您的服务器查看您应该发射你需要为第二个参数数据,并做了第一个参数(一个或多个)

function (doc, meta) { 
    emit(meta.id, [ "name": doc.name,"color": doc.color ]); 
} 

view paramerters; 
startkey = 'habit:150mg buoropion' 
endkey = 'habit:150mg buoropion' + '\uefff' 
查询