Couchdb:Show\u附件

Couchdb:Show\u附件,couchdb,Couchdb,只是对CouchDB有点感觉,并引起了一些误解 我可以从视图中列出记录(感谢以前的响应者) 我已经修改了我的视图以包含_附件,但这似乎没有显示_附件,它们是jpeg文件 map function(doc) { if(doc.SignMark && doc.Details) { emit(doc.SignMark, doc.Details, doc._attachments); } } 我显然错过了一些简单的概念 谢谢-mcl发射始终采用两个参数:键和值。每个都可

只是对CouchDB有点感觉,并引起了一些误解

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

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

map
function(doc) {
  if(doc.SignMark && doc.Details) {
    emit(doc.SignMark, doc.Details, doc._attachments);
  }
}
我显然错过了一些简单的概念


谢谢-mcl发射始终采用两个参数:键和值。每个都可以是一个对象。因此,这将起作用:

function(doc) {
  if(doc.SignMark && doc.Details) {
    emit(doc.SignMark, [doc.Details, doc._attachments]);
 }
}
但是,您可以构造任意要发射的键和值,也可以为每个文档发射多个或根本不发射值


优秀的老师帮了我很多!这是视图的相关章节:

Emit始终采用两个参数:key和value。每个都可以是一个对象。因此,这将起作用:

function(doc) {
  if(doc.SignMark && doc.Details) {
    emit(doc.SignMark, [doc.Details, doc._attachments]);
 }
}
但是,您可以构造任意要发射的键和值,也可以为每个文档发射多个或根本不发射值


优秀的老师帮了我很多!这是视图的相关章节:

从视图中,您无法访问附件本身。您只能选择存储在文档附件中的元数据

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


或者,如果要呈现为html,只需在视图中构造一个图像标记,其src='/db/doc id/attachment name.jpg'

,您无法访问附件本身。您只能选择存储在文档附件中的元数据

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


或者,如果要呈现为html,只需构造一个图像标记,其src='/db/doc id/attachment name.jpg'

非常感谢。我已经把那一章打印出来了,稍后我会在吃饭的时候读。不幸的是,您的建议有效,但它列出了附件的元数据,而不是实际的jpeg图像。在浏览器地址栏中以http请求的形式执行视图时,是否可以显示图像?我使用浏览器地址栏,作为快速理解基本功能的一种手段。您正在查看JSON数据,它或多或少是一个字符串。如果您希望将文档视为HTML页面,那么您应该编写一个show函数,您可以使用它来很好地格式化文档(或者编写一个list函数,它可以很好地输出视图结果):没有查看二进制数据+JSON数据的方法。MapReduce视图函数仅返回JSON文档。Bernhard提到了show函数,它允许您为单个文档编写HTML UI。但是,在这种情况下,您可能需要考虑构建一个列表函数:它与Suffic类似,但是使用视图结果来进行输入,而不是使用单个文档。希望有帮助!非常感谢。我已经把那一章打印出来了,稍后我会在吃饭的时候读。不幸的是,您的建议有效,但它列出了附件的元数据,而不是实际的jpeg图像。在浏览器地址栏中以http请求的形式执行视图时,是否可以显示图像?我使用浏览器地址栏,作为快速理解基本功能的一种手段。您正在查看JSON数据,它或多或少是一个字符串。如果您希望将文档视为HTML页面,那么您应该编写一个show函数,您可以使用它来很好地格式化文档(或者编写一个list函数,它可以很好地输出视图结果):没有查看二进制数据+JSON数据的方法。MapReduce视图函数仅返回JSON文档。Bernhard提到了show函数,它允许您为单个文档编写HTML UI。但是,在这种情况下,您可能需要考虑构建一个列表函数:它与Suffic类似,但是使用视图结果来进行输入,而不是使用单个文档。希望有帮助!如何使用视图获取附件键/名称?如何使用视图获取附件键/名称?