Couch db批量操作

时间:2015-03-07 10:07:32

标签: couchdb conflict ektorp bulk-operations

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

  1. 使用include docs批量抓取。 (出于某种原因,这不适用于idrev。)
  2. 然后在每个文档中包含_deleted字段。
  3. 使用executebulk发布。
  4. 它适用于某些文档,但一些文档的文档更新冲突。

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

2 个答案:

答案 0 :(得分:2)

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

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

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

db.executeBulk(bulkDocs);

答案 1 :(得分:0)

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

https://github.com/harthur/costco

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

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

阅读instructionsexamples