2

我是 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] [调试] [<0.957.0>] '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"}, {'Connection',"keep-活着"}, {'Cookie',"AuthSession=YnVpbGQ6NEUxREUzNTk6suAhrCjMRNN100LLDJqb0Dl-0Ag"}, {'Host',"cmarcel-ws:5984"}, {'If-None-Match',"\"5WLSLFYCQ880T9JCCPAMD804R\""}, {'User-Agent',"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534。30 (KHTML, 像 Gecko) Chrome/12.0.742.112 Safari/534.30"}, {"X-Purpose",": preview"}]

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

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

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

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

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

[格林威治标准时间 2011 年 7 月 13 日星期三 18:36:09] [调试] [<0.918.0>] 操作系统进程 #Port<0.2202> 输入 :: ["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] [调试] [<0.918.0>] 操作系统进程 #Port<0.2202> 输出 :: [true,[null]]

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

4

1 回答 1

2

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

于 2011-07-13T23:16:48.183 回答