Couchdb 批量操作

Couch db bulk operations

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

  1. 使用 include docs 批量获取。 (出于某种原因,这不适用于 idrev。)
  2. 然后在每个文档中包含 _deleted 字段。
  3. Post 使用 executebulk.

它适用于某些文档,但对某些文档不断发生文档更新冲突。

任何 solution/suggestions 请..

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

List<Object> bulkDocs = ...
MyClass toBeDeleted = ...

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

db.executeBulk(bulkDocs);

如果您只需要一种方法来批量 delete/update 文档,而不需要在您自己的软件中实现它,您可以在以下位置使用很棒的 couchapp:

https://github.com/harthur/costco

您需要使用couchapp deployment tool将其上传到您自己的服务器,并使用类似

的功能
function(doc) {
    if(doc.istodelete)  // replace this or remove to delete all docs
        return null;
}     

阅读instructions and examples