关于couchdb:Couch db 批量操作

Couch db bulk operations

所以我一直在尝试将数据从一个数据库移动到另一个数据库。我已经移动了它们,但我需要清除已经从旧数据库中移动的文档。我一直在使用 ektorp 的执行批量来执行批量操作。但是由于某种原因,当我尝试通过插入 _deleted 删除批量时,我不断收到 document update conflict
我可能做错了,这就是我所做的。

  • 使用 include docs 批量获取。 (出于某种原因,这不适用于 idrev。)
  • 然后将 _deleted 字段包含到每个文档中。
  • 使用 executebulk 发布。
  • 它适用于某些文档,但不断出现某些文档的文档更新冲突。

    请提供任何解决方案/建议..


    这是批量删除文档的首选方式:

    1
    2
    3
    4
    5
    6
    List<Object> bulkDocs = ...
    MyClass toBeDeleted = ...

    bulkDocs.add(BulkDeleteDocument.of(toBeDeleted));

    db.executeBulk(bulkDocs);


    如果您只需要一种批量删除/更新文档的方法,并且您不需要在自己的软件中实现它,您可以在以下位置使用出色的 couchapp:

    https://github.com/harthur/costco

    你需要用couchapp部署工具上传到你自己的服务器,并使用类似

    的功能

    1
    2
    3
    4
    function(doc) {
        if(doc.istodelete)  // replace this or remove to delete all docs
            return null;
    }

    阅读说明和示例