努力让任何列表功能起作用。我对_show和_view函数一直很好,但是列表似乎没有用,或者我误解了要做什么! (我承认需要一个白痴的指导!)
我的设计文档如下:
{
"_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:// localhost:5984 / mydb / _design / lists / _view / variants时,我会得到一个变体名称列表,例如:
...{"id":"f050ad9b9f725443cb8c4071f40583b","key":"rs1013940","value":19008},
{"id":"f050ad9b9f725443cb8c4071f40daff","key":"rs1013940","value":19008},
{"id":"f050ad9b9f725443cb8c4071f40b985","key":"rs1021188","value":10197}...
但是当我输入http:// localhost:5984 / mydb / _design / lists / _list / results时,我得到:
{"error":"list_error","reason":"Invalid path."}
有谁知道我做错了什么?我已经尝试了所有我能想到的东西,并在任何在线教程中交换了一个函数。
我在Ubuntu 12.04上使用CouchDB版本1.0.1
非常感谢,希望有人可以提供帮助!
答案 0 :(得分:15)
您需要在网址中同时包含视图名称和列表名称:
http://localhost:5984/:db/_design/:ddoc/_list/:list/:view
在您的情况下转换为:
http://localhost:5984/mydb/_design/lists/_list/results/variants
答案 1 :(得分:1)
我有完全相同的传统;从初学者的角度来看,使用视图,节目和列表的区别并不容易。在官方文档中我读到了这个:
While Show functions are used to customize document presentation, List functions are used for same purpose, but against View functions results.
它让我有点困惑。我同样认为,人们可以单独使用一个列表来整理文档,也许是在一个很好的多汁的HTML涂层中,但我真的只是在阅读了权威指南的这一页(这是一个令人难以置信的资源!)后才弄清楚发生了什么。 p>
http://guide.couchdb.org/draft/transforming.html
就像多米尼克所说的那样,根据API,它应该是显而易见的:)