刚刚感受到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
答案 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