Nosql couchdb视图未按预期响应

Nosql couchdb视图未按预期响应,nosql,couchdb,Nosql,Couchdb,我已经在Ubuntu 10.04上安装了couchdb 0.10。 我有这样的看法: function(doc) { if (doc.type == "transaction") { emit(doc.invoice_id, {id: doc._id, time: doc.time, user_id:doc.user_id}); } } 我通过指定key=247参数的get调用它: http://127.0.0.1:5984/test/_design/sfCouch/_

我已经在Ubuntu 10.04上安装了couchdb 0.10。 我有这样的看法:

function(doc) {
  if (doc.type == "transaction") {
    emit(doc.invoice_id, {id: doc._id, time: doc.time, user_id:doc.user_id});
  }
}
我通过指定key=247参数的get调用它:

    http://127.0.0.1:5984/test/_design/sfCouch/_view/find_by_invoice_id?key=247
在db中,我有一个与发票匹配的文档\u id=247:

{
   "_id": "1357b381d8c22aa193f42de54e400d16",
   "_rev": "2-778ea588fa449851bbab6cfa9fa91bfa",
   "type": "transaction",
   "user_id": "1",
   "invoice_id": "247",
   "time": 1303895611.37
}
但没有从视图返回任何行:

{"total_rows":4,"offset":1,"rows":[]}
这是我的设计文件:

{
   "_id": "_design/sfCouch",
   "_rev": "11-95c82a9d562b3aa1470a02de943f49db",
   "language": "javascript",
   "views": {
       "find_by_invoice_id": {
           "map": "function(doc) {\u000d\u000a  if (doc.type == \"transaction\") {\u000d\u000a    emit(doc.invoice_id, {id: doc._id, time: doc.time, user_id:doc.user_id});\u000d\u000a  }\u000d\u000a}"
       }
   }
}
我遗漏了什么吗?

因为密钥id是一个字符串,所以您也需要将密钥指定为JSON编码的字符串

尝试:

%22是URL编码的符号

如果同样失败,您能否发布以下内容的输出:

http://127.0.0.1:5984/test/_design/sfCouch/_view/find_by_invoice_id
由于密钥id是一个字符串,因此也需要将密钥指定为JSON编码的字符串

尝试:

%22是URL编码的符号

如果同样失败,您能否发布以下内容的输出:

http://127.0.0.1:5984/test/_design/sfCouch/_view/find_by_invoice_id

你能把完整的设计文件贴上去吗?我怀疑您的设计文档的格式可能不正确。有什么原因不能升级到1.0.2吗?您能发布完整的设计文档吗?我怀疑您的设计文档的格式可能不正确。您无法升级到1.0.2的原因是什么?这是带有编码的响应:{total_rows:4,offset:3,rows:[{id:1357b381d8c22aa193f42de54e400d16,key:247,value:{id:1357b381d8c22aa193f42de54e400d16,time:1303895611.37,user_id:1}}}}}是否正确?是的!如果你看,这与你引用的文档的id相同。如果这是你使用的解决方案,请你将答案标记为已接受?谢谢这是带有编码的响应:{total_rows:4,offset:3,rows:[{id:1357b381d8c22aa193f42de54e400d16,key:247,value:{id:1357b381d8c22aa193f42de54e400d16,time:1303895611.37,user_id:1}}}是否正确?是的!如果你看,这与你引用的文档的id相同。如果这是你使用的解决方案,请你将答案标记为已接受?谢谢