如果需要,CouchDB批量更新将不会创建文档

时间:2015-06-25 13:31:19

标签: couchdb bulk

我正在优化我去年编写的脚本,该脚本从源Couch数据库读取文档,修改文档并将新文档写入目标Couch数据库。

因此,该脚本的先前版本执行了以下操作 1.从源db读取文档 2.修改文件 3.将doc写入目标db

我想要做的是将文档堆放在列表中,然后将大量的(比方说100)写入目标数据库以优化性能。

我发现当批量上传必须将文档列表写入目标数据库时,如果列表中有一个文档,其中“_id”不存在于目标数据库中,那么该文档不会写。

返回值将具有“success:true”,即使在复制发生后,目标数据库中也没有此类文档。

我尝试禁用“delayed_commits”并使用标志“all_or_nothing”但没有任何改变。无法找到有关stackoverflow /文档的信息,所以我很遗憾。

由于

1 个答案:

答案 0 :(得分:1)

对于后代:我所遇到的是已知的Bug,它应该在下一个版本中修复。

https://issues.apache.org/jira/browse/COUCHDB-1415

实际的解决方法是每次都写一个略有不同的文档。我添加了一个名为" timestamp"的无用字段。具有运行我的脚本时的时间戳值。