CouchApp 视图显示将为空结果

Posted

技术标签:

【中文标题】CouchApp 视图显示将为空结果【英文标题】:CouchApp views show up will null results 【发布时间】:2011-07-12 22:47:32 【问题描述】:

我是 CouchDB 的新手,但我在谷歌上对此一无所获。

从数据库查看时,我有一个包含 2 个文档的结果集的视图 主机:5984/_utils/database.html?phistory/_design/phistory/_view/res

当我尝试通过沙发应用访问同一视图时,结果以空文档的形式返回。 主机:5984/phistory/_design/phistory/_view/res

从 CouchApp 查看时的 JSON 结果:

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

这是视图中的地图功能。

function(doc) 
  if(doc.query && doc.transactions)
    emit(doc.query, doc.transactions);
    

文档


   "_id": "fad95bf61bd2c87db4d017668a002191",
   "_rev": "1-8bec74cf8022f91bdc9cb53fa8ff7599",
   "query_group": "simple-select",
   "query": "select id from FactV__c",
   "transactions": 
       "2011-06-01T12:13:15Z": "100",
       "2011-07-01T12:13:15Z": "099"
   

据此看来我正在正确访问视图。 http://wiki.apache.org/couchdb/HTTP_view_API

为请求添加来自沙发日志的调试输出。您可以在下面看到,实际视图从 DB 角度呈现数据,但返回 null 给浏览器的响应。

[格林威治标准时间 2011 年 7 月 13 日星期三 18:36:09] [调试] [] 'GET' /phistory/_design/phistory/_view/res 1,1 标头:['Accept',"text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8", 'Accept-Charset',"ISO-8859-1,utf-8;q=0.7,*;q=0.3", 'Accept-Encoding',"gzip,deflate,sdch", 'Accept-Language',"en-US,en;q=0.8", '连接',“保持活动”, 'Cookie',"AuthSession=YnVpbGQ6NEUxREUzNTk6suAhrCjMRNN100LLDJqb0Dl-0Ag", '主机',"cmarcel-ws:5984", 'If-None-Match',"\"5WLSLFYCQ880T9JCCPAMD804R\"", 'User-Agent',"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30", "X-Purpose",": 预览"]

[格林威治标准时间 2011 年 7 月 13 日星期三 18:36:09] [调试] [] 成功的 cookie 身份验证为:“build”

[格林威治标准时间 2011 年 7 月 13 日星期三 18:36:09] [调试] [] request_group Pid, Seq ,96

[格林威治标准时间 2011 年 7 月 13 日星期三 18:36:09] [调试] [] request_group Pid, Seq ,96

[格林威治标准时间 2011 年 7 月 13 日星期三 18:36:09] [调试] [] 操作系统进程 #Port 输入 :: ["reset","reduce_limit":true]

[格林威治标准时间 2011 年 7 月 13 日星期三 18:36:09] [调试] [] 操作系统进程 #Port 输出 :: true

[2011 年 7 月 13 日星期三 18:36:09 GMT] [debug] [] OS Process #Port Input :: ["reduce",["function(keys, values, rereduce ) \n \n"],[[["从 FactV__c 中选择 id","fad95bf61bd2c87db4d017668a002191"],"2011-06-01T12:13:15Z":"100","2011-07-01T12:13 :15Z":"099"]]]

[格林威治标准时间 2011 年 7 月 13 日星期三 18:36:09] [调试] [] 操作系统进程 #Port 输出 :: [true,[null]]

[格林威治标准时间 2011 年 7 月 13 日星期三 18:36:09] [信息] [] 10.0.63.48 - - 'GET' /phistory/_design/phistory/_view/res 200

【问题讨论】:

您能否提供一些示例文档和您的视图的源代码? 这是视图中的地图功能。 function(doc) if(doc.query && doc.transactions) emit(doc.query, doc.transactions); Document "_id": "fad95bf61bd2c87db4d017668a002191", "_rev": "1-8bec74cf8022f91bdc9cb53fa8ff7599", "query_group": "simple-select", "query": "select id from FactV__c", "transactions": "2011-06-01T12:13:15Z": "100", "2011-07-01T12:13:15Z": "099" 编辑问题以包含这些详细信息 已更新问题中的正确格式。 它对我有用吗?有减少发生吗?您用来查询视图的完整 URL 是什么? 【参考方案1】:

所以我弄清楚发生了什么。显然,当您通过 couchapp 生成视图时,它也会创建并清空 reduce 函数。它被褥,您需要显式运行reduce,这样它就不会影响结果集。通过应用程序,空的减少有效地消除了结果。感谢所有回复的人。

【讨论】:

以上是关于CouchApp 视图显示将为空结果的主要内容,如果未能解决你的问题,请参考以下文章

从 CouchApp 发布数据库视图

Couchapp 在查询视图时返回 304

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

在 CouchApp 视图中将参数传递给 map.js

使用数组传递数据,但在表视图委托中显示为空

使用 mustache 时 Couchapp 列表中的超时