我正在使用PouchDB而且我遇到了问题,因为sync
API报告的更改不符合我的预期。
阅读复制API我希望on change
事件包含有关已更改文档的某些元数据。这是在这里解释的:
https://pouchdb.com/api.html#example-response-10
我知道这是用于复制的API,但是同步文档引用它,所以我将把它作为事实的来源。正如您所看到的,根据文档,我将获得一系列已更改的文档,到目前为止一切顺利。 但是,相反,我得到以下内容:
{
"direction": "pull",
"change": {
"ok": true,
"start_time": "2017-06-24T18:14:39.290Z",
"docs_read": 4,
"docs_written": 4,
"doc_write_failures": 0,
"errors": [],
"last_seq": "389-g1AAAAGjeJzLYWBgYMlgTmGQT0lKzi9KdUhJstDLSs1LLUst0kvOyS9NScwr0ctLLckBKmRKZEiy____f1YGc6J6LlCAPc0ixdQoOZWwdlQrzHBbkeQAJJPqobacANtimWJmYp5iRtgEoj2SxwIkGRqAFNCi_SCbfME2mRhYphmYG1PRPxCbDkBsAvvJE2yThaGlZappKmFTsgDmlIlz"
}
}
优点是我知道方向,缺点是我必须让我的观点重新阅读所有文件才能获得最新版本的更改。任何地方都没有docs
数组
我触发复制的方式如下:
database.sync(remoteDB, {
live: true,
retry: true,
filter: 'filtered_replication/only_tiddlers'
}).on('change', function (info) {
log( '===SYNC Change===');
if (info.direction === 'pull'){
// Refresh the full view because we don't know which documents should be updated
}
})