我正在优化我去年写的一个脚本,它从源Couch数据库读取文档,修改文档,并将新文档写入目标Couch数据库。
因此,上一个版本的脚本执行以下操作:1.从源数据库读取文档2.修改文档3.将文档写入目标数据库
我正在尝试做的是将文档堆叠在一个列表中,然后将大量(比方说100)写入目标数据库,以优化性能。
我所发现的是,当批量上传必须将文档列表写入目标数据库时,如果列表中的文档具有不存在于目标数据库中的"_id“,那么该文档将不会被写入。
返回值将为"success: true“,即使在复制发生后,在目标db中没有这样的文档。
我尝试禁用"delayed_commits“并使用标志"all_or_nothing”,但没有任何变化。找不到关于堆栈溢出/文档的信息,所以我完全迷路了。
谢谢
发布于 2015-06-25 23:20:59
致子孙后代:我所经历的是已知的Bug,它应该在下一个版本中修复。
https://issues.apache.org/jira/browse/COUCHDB-1415
实际的解决方法是编写一个每次都略有不同的文档。我添加了一个名为" timestamp“的无用字段,它的值是我运行脚本时的时间戳。
https://stackoverflow.com/questions/31051842
复制相似问题