您可以在接收数据库上指定CouchDB复制过滤器吗?

时间:2016-03-09 15:37:38

标签: couchdb

这里有一篇很好的文章(https://momentum.spindance.com/2016/02/couchdb-replications/),其中包含有关CouchDB复制的有用信息。查看文档,很容易找到对复制过滤器的引用(例如http://docs.couchdb.org/en/1.6.1/couchapp/ddocs.html)。

然而,它们似乎都涉及过滤更改Feed将发出的内容。我想要一个主CouchDB发出所有文档,然后是几个从属服务器只存储适合其ID范围的文档。

是否可以使用设计文档中的过滤器执行此操作?

否则可以通过从站上的验证文档更新功能和主站上的推送复制来完成吗?

奴隶和主人实际上是误导,因为信息将被插入“奴隶”中。每个都需要有一个信息的子集。

1 个答案:

答案 0 :(得分:1)

The documentation for this似乎没有跨越新的wiki,但是,您可以通过在复制文档中提供doc_ids属性来执行命名文档复制。

OP评论后更新

抱歉,我意识到我没有回答你的核心问题。不,你不能在接收器上安装过滤器。过滤是在整个文档上进行的,所以即使你可以在接收器之前要求接收器上的所有完整文档,所以即使你能够这样做,你也会转移所有文件。

你可以,顺便说一下,接收器上有第二个数据库,它复制主服务器上的所有文档,然后为过滤器复制到接收器上的其他数据库定义过滤器

...是的,对于命名文档复制,您必须提供所有ID,不,这些数据的大小没有限制。

您可能没有想到的另一件事,过滤器功能只是设计文档的一部分,并且可以复制所有文档(包括设计文档)。因此,如果您愿意,您可以在接收器上实际创建过滤器,然后将它们复制到主服务器,然后在过滤器复制中使用它们。