Couchdb 当revs_limit大于0时,PockDB不同步删除

Couchdb 当revs_limit大于0时,PockDB不同步删除,couchdb,pouchdb,Couchdb,Pouchdb,我有一个本地任务包。在我尝试与IBMCloudAntNoSQL建立同步之前,它工作得相当好。到目前为止,主要的问题是remove()方法,我是这样写的: $(document).on("click","#taskList li .delete", function(){ db.remove(id,rev); refreshTasks(); }); 当sync关闭时,该方法可以很好地工作,但只要我使用下面的行激活sync,它就不会从本地和远程删除任务。我正在运行与以下代码同步

我有一个本地任务包。在我尝试与IBMCloudAntNoSQL建立同步之前,它工作得相当好。到目前为止,主要的问题是remove()方法,我是这样写的:

$(document).on("click","#taskList li .delete", function(){

    db.remove(id,rev);
    refreshTasks();

});
当sync关闭时,该方法可以很好地工作,但只要我使用下面的行激活sync,它就不会从本地和远程删除任务。我正在运行与以下代码同步的数据库:

db.sync(remote_db, {
  live: true,
  retry: true
}).on('change', function (change) {
  // yo, something changed!
}).on('paused', function (info) {
  // replication was paused, usually because of a lost connection
}).on('active', function (info) {
  // replication was resumed
}).on('error', function (err) {
  // totally unhandled error (shouldn't happen)
});
我的数据库是使用以下内容创建的:

var db = new PouchDB('tasks', {revs_limit: 1, auto_compaction: true});
现在,当我创建revs_limit为0的数据库时,它再次工作


发生了什么?

当您从文件袋中删除文档时,基本操作类似于更新-更新包含删除“墓碑”版本,必须同步回服务器

通过设置
revs\u limit:1
,本地数据库将只跟踪每个文档的最新版本,包括此删除,因此在同步时,它将不知道将删除附加到哪个父版本。这在coach/Cloudant中不是一个错误条件——它只会在服务器上创建一个冲突的文档

我建议创建数据库时不要更改默认的
revs\u限制
。实际上,唯一有意义的场景是当您拥有不可变的文档时,即它们永远不会被更新/删除