2012-07-03 16 views
5

Çalışmak için herhangi bir liste işlevinin yerine getirilmesi için mücadele. _Show ve _view işlevleri ile iyiyim, ama listeler çalışmıyor gibi görünüyor ya da ne yapacağımı yanlış anladım! (Ben salak kılavuzu ihtiyacı itiraf edeceğiz!)Herhangi bir CouchDB _list işlevi çalışmak için çalışamıyor

My tasarım belge gibi görünür:

{ 
    "_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);}}" 
    } 
} 

ben http: // localhost: 5984/Mydb/_design/listeleri/_View/I varyantları gibi varyant adlarının bir listesini almak:

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

ama http girdiğinizde: // localhost: 5984/mydb/_design/listeleri/_list/sonuçları alıyorum:

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

Yanlış yaptığımı bilen var mı? Düşünebildiğim her şeyi denedim ve herhangi bir çevrimiçi öğreticiden birinin işlevini değiştirdim.

Ben Ubuntu 12.04

üzerinde

çok teşekkür ederiz CouchDB sürüm 1.0.1 kullanıyorum, birisi yardım eder!

cevap

13

Bir görünüm adı yanı sıra URL'de bir liste adı eklemeniz gerekecektir: Ben

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

+1

Ahhh, tabii ki. Bu aptal soru için üzgünüm! – raistrick

1

: sizin durumunuzda çevirir

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

tam olarak aynı kondüsyon; Yeni başlayanların bakış açısından görünüm, şov ve listeleri kullanmadaki farkı ayırt etmek kolay değildi. resmi dokümanlar ben bunu okuyun:

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

Ve biraz beni karıştı. Benzer bir şekilde, bir belgeyi, belki de güzel bir sulu HTML kaplaması içinde harmanlamak için tek başına bir liste kullanabileceğini düşünmüştüm, ama gerçekten sadece bu kılavuzun bu sayfasını okuduktan sonra neler olduğunu anladım (bu inanılmaz bir kaynak!)

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

Dominic dediği gibi , bu API tabanlı bana açık olmalıydı :)