6

努力让任何列表功能正常工作。我对 _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 版

非常感谢,希望有人能帮忙!

4

2 回答 2

15

您需要在 URL 中同时包含视图名称和列表名称:

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

在您的情况下,这意味着:

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

于 2012-07-03T14:44:31.460 回答
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 对我来说应该是显而易见的 :)

于 2014-01-29T01:27:03.407 回答