是否可以在现有文档中添加附件?当我使用时:
db.putAttachment()
我收到了冲突错误...
答案 0 :(得分:1)
将附件附加到文档时,仍需要传入现有文档的rev
,因为它被视为对文档的修改。
答案 1 :(得分:1)
我总是发现创建addOrUpdate()类型的函数来处理邮袋很有用。它基本上试图找到一个你传递的id的条目,如果找不到,它会创建,否则会更新
function addPouchDoc(documentId, jsonString) {
var pouchDoc = {
_id: documentId,
"pouchContent": jsonString,
};
// var test = db.get(documenId, function(err, doc) { }); alert(test);
db.put(pouchDoc, function callback(err, result) {
if (!err) {
console.log('Successfully added Entry!');
} else {
console.log(err);
}
});
}
这是你应该经常打电话的功能
function addOrUpdatePouchDoc(documentId, jsonString) {
var pouchDoc = {
_id: documentId,
"pouchContent": jsonString
};
db.get(documentId, function(err, resp) {
console.log(err);
if (err) {
if (err.status = '404') {
// this means document is not found
addPouchDoc(documentId, jsonString);
}
} else {
// document is found OR no error , find the revision and update it
//**use db.putAttachment here**
db.put({
_id: documentId,
_rev: resp._rev,
"pouchContent": jsonString,
}, function(err, response) {
if (!err) {
console.log('Successfully posted a pouch entry!');
} else {
console.log(err);
}
});
}
});
}
答案 2 :(得分:0)
您需要传递附件将放入的文档的_id
和_rev
。
db.putAttachment(_id.toString(), file_name, _rev.toString(), qFile.data, type )
.then((result) =>{
console.log(result)
}).catch((err) => {
console.log(err)
});
其中qFile.data
表示blob,在这种情况下为64位数据字符串,而type表示模仿类型,例如'image / png'或'text / json'等。
https://pouchdb.com/api.html#save_attachment
和一个很好的但过时的实时示例: https://pouchdb.com/guides/attachments.html