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

Can you specify a CouchDB replication filter on the receiving database?

这里有一篇很棒的文章 (https://momentum.spindance.com/2016/02/couchdb-replications/) with useful information on CouchDB replication. And looking at the documentation it is easy to find reference to replication filters (e.g. http://docs.couchdb.org/en/1.6.1/couchapp/ddocs.html)。

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

是否可以在设计文档中使用过滤器来做到这一点?

否则可以通过在从服务器上验证文档更新功能并在主服务器上进行推送复制来完成吗?

slaves 和 master 实际上是误导,因为 info 将被插入 'slaves' 每个都需要有一个 info 的子集。

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

根据 OP 评论更新

抱歉,我发现我没有回答您的核心问题。不,你不能在接收器上安装过滤器。过滤是在整个文档上完成的,所以即使你可以,Couch 也需要接收器上的所有完整文档,然后才能过滤它们,所以即使你能够这样做,你也会传输所有文档。

顺便说一句,您可以在接收器上安装第二个数据库,从主服务器复制所有文档,然后让 为您的过滤复制定义过滤器接收器上的其他数据库。

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

还有一点你可能没有想到,filter函数只是设计文档的一部分,所有文档(包括设计文档)都可以复制。因此,如果您愿意,您实际上可以在接收器上创建过滤器,然后将它们复制到主服务器,然后在过滤复制中从接收器使用它们。