2012-07-03 35 views
5

努力獲取任何列表函數。我用_show和_view函數很好,但列表似乎沒有工作,或者我誤解了要做什麼! (我會承認需要一個傻瓜指南!)無法使用任何CouchDB _list函數

我的設計文檔的樣子:

{ 
    "_id": "_design/lists", 
    "_rev": "3-d22225b4a28a6ca11484723c3a37201b", 
    "language": "javascript", 
    "views": { 
     "variants": { 
      "map": "function(doc) { emit(doc.var, doc.number_of_results); }" 
     } 
    }, 
    "lists": { 
     "results": "function(head, req) { var row; while(row = getRow()) {send(row.value);}}" 
    } 
} 

當我輸入http://本地主機:5984/MYDB/_design /列表/ _view /我變種得到不同名稱的列表,如:

...{"id":"f050ad9b9f725443cb8c4071f40583b","key":"rs1013940","value":19008}, 
{"id":"f050ad9b9f725443cb8c4071f40daff","key":"rs1013940","value":19008}, 
{"id":"f050ad9b9f725443cb8c4071f40b985","key":"rs1021188","value":10197}... 

,但是當我輸入http://本地主機:5984/MYDB/_design /列表/ _list /結果我得到:

{"error":"list_error","reason":"Invalid path."} 

有誰知道我做錯了什麼?我嘗試了所有我能想到的東西,並從任何在線教程中交換了一個函數。

我使用CouchDB的1.0.1版本在Ubuntu 12.04

非常感謝,希望有人能幫助!

回答

13

您需要包括一個視圖名稱,以及在你的URL列表名稱:

http://localhost:5984/:db/_design/:ddoc/_list/:list/:view

而你的情況轉換爲:

http://localhost:5984/mydb/_design/lists/_list/results/variants

+1

唉唉,當然。對不起,這個愚蠢的問題! – raistrick

1

我有完全相同的飲料;立即從初學者的角度看待使用視圖,節目和列表的差異並不容易。在官方文檔我讀這:

While Show functions are used to customize document presentation, List functions are used for same purpose, but against View functions results.

而且稍微搞糊塗了。我認爲同樣的,人們可以單獨使用列表整理文檔,也許在一個不錯的多汁的HTML塗層,但我真的只知道在閱讀權威指南的這一頁後發生了什麼(這是一個令人難以置信的資源!)

http://guide.couchdb.org/draft/transforming.html

像多米尼克說,它應該基於API已經明顯對我:)