Couchdb:显示_attachments

时间:2011-10-11 11:55:06

标签: couchdb

刚刚感受到CouchDB并且遇到了一些误解。

我可以列出视图中的记录(感谢前一个响应者)

http://mysite.iriscouch.com/mydb/_design/_view/myview

我修改了我的视图以包含_attachments,但这似乎没有显示_attachments,它们是jpeg文件。

map
function(doc) {
  if(doc.SignMark && doc.Details) {
    emit(doc.SignMark, doc.Details, doc._attachments);
  }
}

我显然错过了一些简单的概念

谢谢 - mcl

2 个答案:

答案 0 :(得分:3)

在视图中,您无法访问附件本身。您只能存储doc._attachments中存储的元数据。

因此,根据您的要求,您必须使用格式为/db/doc-id/attachment-name.jpg的第二个请求访问实际附件

或者,如果你要渲染到html,只需使用src ='/ db / doc-id / attachment-name.jpg'构建一个图像标记

答案 1 :(得分:2)

Emit总是有两个参数:键和值。每个都可以是一个对象。所以这会奏效:

function(doc) {
  if(doc.SignMark && doc.Details) {
    emit(doc.SignMark, [doc.Details, doc._attachments]);
 }
}

但是你可以构造任意键和值来发出,你也可以为每个文档发出多个或没有值。

出色的CouchDB Book给了我很多帮助!这是观点的相关章节:http://guide.couchdb.org/draft/views.html