Couchdb 数据库批量操作
所以我一直在尝试将数据从一个数据库移动到另一个数据库。我已经移动了它们,但我需要清除已从旧数据库中移动的文档。我一直在使用ektorp的执行批量来执行批量操作。但由于某种原因,当我试图通过插入Couchdb 数据库批量操作,couchdb,conflict,ektorp,bulk-operations,Couchdb,Conflict,Ektorp,Bulk Operations,所以我一直在尝试将数据从一个数据库移动到另一个数据库。我已经移动了它们,但我需要清除已从旧数据库中移动的文档。我一直在使用ektorp的执行批量来执行批量操作。但由于某种原因,当我试图通过插入\u deleted来删除批量时,我不断收到文档更新冲突。 我可能做错了,这就是我所做的 使用包含文档批量获取。(由于某些原因,这不适用于仅id和rev) 然后将_deleted字段包含到每个文档中 使用executebulk发布 它对某些文档有效,但对某些文档不断获取文档更新冲突 请提供任何解决方案/建议
\u deleted
来删除批量时,我不断收到文档更新冲突。
我可能做错了,这就是我所做的
使用包含文档
批量获取。(由于某些原因,这不适用于仅id
和rev
)
然后将_deleted字段包含到每个文档中
使用executebulk
发布
它对某些文档有效,但对某些文档不断获取文档更新冲突
请提供任何解决方案/建议。这是批量删除文档的首选方式:
List<Object> bulkDocs = ...
MyClass toBeDeleted = ...
bulkDocs.add(BulkDeleteDocument.of(toBeDeleted));
db.executeBulk(bulkDocs);
List bulkDocs=。。。
MyClass toBeDeleted=。。。
bulkDocs.add(BulkDeleteDocument.of(toBeDeleted));
db.executeBulk(bulkDocs);
如果您只需要一种批量删除/更新文档的方法,而不需要在自己的软件中实现,您可以使用great couchapp,网址为:
您需要将其上载到您自己的服务器,并使用以下功能
function(doc) {
if(doc.istodelete) // replace this or remove to delete all docs
return null;
}
阅读并谢谢亨里克!无论哪种方式,看起来我们都必须包括文档,即使是删除。我希望如果我们只提供id和rev,它也能工作。生成的json文档将只包含id、rev和_deletedfieldsOH…您是指bulkDocs还是删除后的结果文档。。因为我试图大量删除,并使用http客户端进行查询,所以如果我包含文档,它只会严重影响性能。。。因此,我们正在寻找一种将响应和请求有效负载降至最低的方法。。。。无论如何,谢谢你的信息!