我有一个看起来像这样的功能
var Db = new PouchDB('mydb');
function attach(doc, pictures) {
// expecting file URI
var blobPromises = pictures.map(function(imgUri) {
// https://github.com/nolanlawson/blob-util
return blobUtil.imgSrcToBlob(imgUri);
});
// angular's $q
return $q.all(blobPromises).then(
function gotBlobs(blobs) {
var batchId = (new Date()).getTime();
var attachPromises = blobs.map(function(blob, i) {
var attachmentId = 'picture/' + batchId + '/' + i;
// NOTE: this is throwing error 409
return Db.putAttachment(doc._id, attachmentId, doc._rev, blob, blob.type);
});
return $q.all(attachPromises);
}
)
}
现在我知道出了什么问题 - 同样的doc._rev
被重复用于所有附件插入。如果我改变我的代码以便一个接一个地执行Db.putAttachment()
并且每次都查询新的doc._rev
,它应该会有用。
但是:
putAttachments()
之类的API?put()
创建文档时放置附件?答案 0 :(得分:3)
是的,您可以put()
在文档中附加任意数量的附件。
检查第一个示例from the guide。你可以这样做:
db.put({
_id: 'mydoc',
_attachments: {
'myattachment1.txt': {
content_type: 'text/plain',
data: blob1
},
'myattachment2.txt': {
content_type: 'text/plain',
data: blob2
},
'myattachment3.txt': {
content_type: 'text/plain',
data: blob3
},
// etc.
}
});