不,没有开箱即用的解决方案,因为这会违反多主机MVCC逻辑的整个目的和逻辑。
我在这里看到的唯一选择是创建自己的解决方案,但我不会将其称为复制,而是称为ETL(提取,转换,加载)。而对于ETL,有一些工具可以让你做到这一点,比如(在这里混合开源和商业广告):
市场上有更多的ETL工具。
我认为这里最好的方法是将要过滤的字段分解为单独的文档,然后在复制过程中过滤掉文档。
当然最好的方法是have built-support for this,但是对我来说是一种解决方法,而不是使用the built-in replication来代码和使用自定义复制在许多情况下(特别是如果每个主人都可以推动其奴隶),仍然使用而不是继续使用其他内置插件,并使用良好的编码,它感觉这可能是近乎需要的更改/转换效率很高。
- 这需要在每个源/主服务器上放置有效的触发器以检测任何更改,我相信CouchDB确实提供(或至少PouchDB appears to),然后将更改复制到另一个位置也进行完全更改
- 如果更改源无法将更改推送到最终目的地,则此固定存储可能是目标可以从中拉出的本地存储 - 这可能会变得非常昂贵,尤其是在多主机中,因为每个位置不仅要存储&维护自己的数据,以及发送给每个人的数据(发送)。
- 此复制文件还会将每个源文档的修订ID放在文档的副本中......
- ......理想情况下,如果要复制{更新,又称主人},则必不可少。
- ...以下列之一的形式:
- 理想情况下是正常的" _rev"属性。事实上,the normal replication algorithm使用内置的"批量文档API"已经完成了这一点("保留了他们的修订版ID")看似我们的变量也会使用
- 否则有一个新的复制对象(有自己的_rev)加上另一个字段为" _rev_original" ntelling原来的转速。但那会有用吗?
- 显然这样的副本可以创建没问题。
- 如果目的地只是在阅读数据,可能没什么大不了的。
- 如果目的地也在写数据,那么看起来很毛茸茸。因为我们现在必须与这些非标准修订合并。但是可行。
- 与此相关( 编码自定义/改进的复制(完成这项显然缺失的功能),理想情况下不会改变Pouch,尤其是Couch源代码 ),因为< strong>起始/基础材料(标准方法),这里the normal Couch replication algorithm不幸地说明了它只使用了内置操作,但它看起来像它,而且the official overview of what it does 3}};我怀疑Pouch实现了这一点,可能在Pouch's replicate.js (latest release as of 2014.07)。
醇>
进一步的实施细节? - 那些知道的人,请把它放在这里。
这是一个&#34;社区维基&#34;回答所以请延长它。
另请注释链接&amp;任何人/系统已经或正在尝试这样或类似的细节。