不能使用任何CouchDB _list函数

时间:2012-07-03 12:13:18

标签: list views couchdb document

努力让任何列表功能起作用。我对_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

非常感谢,希望有人可以提供帮助!

2 个答案:

答案 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,它应该是显而易见的:)