Javascript 数据库不同步已删除的文档
之前,我使用stream export和PockDB load插件执行了PockDB数据库的导出/导入,但是每次导出时,数据库的大小都会增加到不可思议的高度 这就是为什么它采用以下方式:导出:Javascript 数据库不同步已删除的文档,javascript,couchdb,pouchdb,Javascript,Couchdb,Pouchdb,之前,我使用stream export和PockDB load插件执行了PockDB数据库的导出/导入,但是每次导出时,数据库的大小都会增加到不可思议的高度 这就是为什么它采用以下方式:导出: // Get documents not deleted db1.allDocs({include_docs: true}) // Get documents deleted getDeletedDocuments() { const docsDeleted = []; retu
// Get documents not deleted
db1.allDocs({include_docs: true})
// Get documents deleted
getDeletedDocuments() {
const docsDeleted = [];
return new Promise((resolve, reject) => {
this._db.changes({
filter: (doc) => (doc._deleted)
}).on('change', (doc) => {
docsDeleted.push({ doc: { _id: doc.id, _deleted: doc.deleted, _rev: doc.changes[0].rev } })
}).on('complete', (complete) => {
resolve(docsDeleted);
}).on('error', (error) => {
reject(error);
})
});
}
这两个数组(已消除/未消除)我将它们连接(concat)以拥有所有文档,然后生成bulkDocs
进口:
// Upload documents to the new database (news_edits: true so that the document revision does not change)
db2.bulkDocs(data, { new_edits: false });
稍后,我将同步数据库:
db2.sync(remote, {live: false})
.on('complete', (complete) => {
console.log(complete);
}).on('error', (error) => {
console.log(error);
});
它工作正常,但是,删除的文档不与couchdb同步,在couchdb中仍然显示删除的文档
等待您的评论。在您的
更改处理程序中,代码引用\u deleted:doc.deleted
。应将其\u删除:doc.\u删除(注意下划线)。