从每个用户数据库到主数据库的CouchDB复制

从每个用户数据库到主数据库的CouchDB复制,couchdb,Couchdb,我有一个系统arch:名为master的主数据库和名为user1和user2的用户数据库。我正在将一个文档从主数据库复制到user1和user2dbs。然后用户在其数据库中分别修改该文档(例如,user1添加标记:[1,2],user2添加标记:[3,4]字段)。现在,我想从用户数据库复制回master并合并新添加的标记字段,以便将其结果合并到标记:[1,2,3,4]。另外,我可能需要在复制上运行一些逻辑,使生成的标记成为标记:[1,2,4] 正确的方法是什么?这可以通过复制+冲突简单地解决。有

我有一个系统arch:名为
master
的主数据库和名为
user1
user2
的用户数据库。我正在将一个文档从主数据库复制到
user1
user2
dbs。然后用户在其数据库中分别修改该文档(例如,user1添加
标记:[1,2]
,user2添加
标记:[3,4]
字段)。现在,我想从用户数据库复制回master并合并新添加的
标记
字段,以便将其结果合并到
标记:[1,2,3,4]
。另外,我可能需要在复制上运行一些逻辑,使生成的标记成为
标记:[1,2,4]


正确的方法是什么?

这可以通过复制+冲突简单地解决。有一个主外部流程来检查冲突,合并标签,然后写入新文档。

这可以通过复制+冲突来简单解决。有一个主外部流程,用于检查冲突、合并标记并编写新文档。

您没有说明如何在最终结果中删除标记“3”,因此很难给出完整答案

CouchDB文档中有很多关于处理此类场景的各种方法的好信息。以及如何使用包含以下“使用冲突解决方案获取文档的建议代码”的

  • 获取docid?冲突=true
  • 对于_冲突数组中的每个成员: 获取docid?rev=xxx 如果在此阶段出现任何错误,请从步骤1重新启动。 (可能有一场比赛,其他人已经解决了这个问题 冲突并删除了该版本)
  • 执行特定于应用程序的合并
  • 编写批量文档,更新第一次修订并删除 其他转速
  • 它还指出“这可以在每次读取时执行(在这种情况下,您可以用对执行上述操作的库的调用来替换应用程序中的所有调用),也可以作为清理程序代码的一部分。”并且它还提供了一个完整的Ruby示例


    这回答了你所有的问题吗?

    你没有说你想如何在最终结果中去掉标记“3”,所以很难给出完整的答案

    CouchDB文档中有很多关于处理此类场景的各种方法的好信息。以及如何使用包含以下“使用冲突解决方案获取文档的建议代码”的

  • 获取docid?冲突=true
  • 对于_冲突数组中的每个成员: 获取docid?rev=xxx 如果在此阶段出现任何错误,请从步骤1重新启动。 (可能有一场比赛,其他人已经解决了这个问题 冲突并删除了该版本)
  • 执行特定于应用程序的合并
  • 编写批量文档,更新第一次修订并删除 其他转速
  • 它还指出“这可以在每次读取时执行(在这种情况下,您可以用对执行上述操作的库的调用来替换应用程序中的所有调用),也可以作为清理程序代码的一部分。”并且它还提供了一个完整的Ruby示例


    这回答了您所有的问题吗?

    您应该管理冲突:标记是在用户文档中还是在他们自己的文档中?标记是提要文档中的字段,它只是{u id:'xxx',name:'yyy',标记:[])您应该管理冲突:标记是在用户文档中还是在他们自己的文档中?标记是FEED文档中的字段,它只是{{u id:'xxx',name:'yyy',标记:[])