CouchApp 无法从视图中检索键/值对,但 Futon 可以

Posted

技术标签:

【中文标题】CouchApp 无法从视图中检索键/值对,但 Futon 可以【英文标题】:CouchApp cannot retrieve key/value pairs from view but Futon can 【发布时间】:2012-01-12 23:57:08 【问题描述】:

我创建了一个简单的 couchapp 并将其部署到我的 CouchDB 实例中。但是,我注意到异常。创建的视图(通过 couchapp generate view ...)在我在 CouchDB 的 Futon 管理界面(以管理员身份登录)中查看时返回数据,但在我运行我编写的 couchapp 时不返回。这是我的代码示例:

$.CouchApp(function(app) 
app.view("wine_list",  success: function(json) 
    json.rows.map(function(row) 
       alert(row.key);
    ); 
);
);

我从上面的 alert() 得到的结果是'null'。

当我导航到:http://localhost:5984/winedb/_design/wineapp/_view/wine_list 我得到:

"rows":[
"key":null,"value":null
  ]

但是,如果我打开 Futon 管理界面并导航到设计文档/视图,我可以看到记录。现在,在 Futon 中,我以管理员身份登录。所以,我的猜测是我应该在我的 couchapp javascript 代码中使用特定的身份验证凭据?如果有,怎么做?

【问题讨论】:

【参考方案1】:

如果您的视图同时具有 mapreduce 组件,那么这可能是 Futon 中的用户界面错误。

默认情况下,CouchDB 将为查询提供 map 和 reduce 结果。要仅查看地图结果,您必须提供 ?reduce=false 参数。

Futon 默认提供?reduce=false 参数,您必须勾选“减少”复选框才能获得“默认”行为。

换句话说,将reduce=false 添加到您的查询中。这有帮助吗?

【讨论】:

如果我想获取reduce设置为'true'时返回的行怎么办?

以上是关于CouchApp 无法从视图中检索键/值对,但 Futon 可以的主要内容,如果未能解决你的问题,请参考以下文章

如何检索名称 | Listview中多个选中项目的值对?

从 CouchApp 发布数据库视图

Couchapp 在查询视图时返回 304

从字符串中获取键/值对并存储在地图中

如何从 CouchDB 中提取 CouchApp

检索/列出 Redis 数据库中的所有键/值对