能否在接收数据库上指定CouchDB复制筛选器?

能否在接收数据库上指定CouchDB复制筛选器?,couchdb,Couchdb,这里有一篇优秀的文章()提供了有关CouchDB复制的有用信息。通过查看文档,很容易找到复制筛选器的参考(例如) 然而,它们似乎都涉及过滤提要将发出的更改。我希望主CouchDB发出所有文档,然后几个从属服务器只存储符合其ID范围的文档 是否可以在设计文档中使用过滤器执行此操作 否则,是否可以通过从机上的验证文档更新功能和主机上的推送复制来实现这一点 从机和主机实际上是误导性的,因为信息将被插入到“从机”中,每个“从机”都需要信息的子集 似乎没有进入新的wiki,但是是的,您可以通过在复制文档中

这里有一篇优秀的文章()提供了有关CouchDB复制的有用信息。通过查看文档,很容易找到复制筛选器的参考(例如)

然而,它们似乎都涉及过滤提要将发出的更改。我希望主CouchDB发出所有文档,然后几个从属服务器只存储符合其ID范围的文档

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

否则,是否可以通过从机上的验证文档更新功能和主机上的推送复制来实现这一点

从机和主机实际上是误导性的,因为信息将被插入到“从机”中,每个“从机”都需要信息的子集

似乎没有进入新的wiki,但是是的,您可以通过在复制文档中提供
doc\u id
属性来进行命名文档复制

更新以下OP评论 对不起,我意识到我没有回答你的核心问题。不,你不能在接收器上安装过滤器。过滤是在整个文档上完成的,所以即使你可以在接收者过滤所有完整文档之前,你也需要在接收者上完成所有完整文档的过滤,所以即使你能够做到这一点,你也要传输所有文档

顺便说一句,您只需在接收器上有第二个DB,用于复制主数据库中的所有文档,然后让为您的已过滤复制定义筛选器,并将其复制到接收器上的其他DB

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


还有一件您可能没有想到的事情,过滤功能只是设计文档的一部分,所有文档(包括设计文档)都可以复制。因此,如果您愿意,您可以在接收器上创建过滤器,然后将其复制到主机,然后在过滤复制中使用接收器中的过滤器。

谢谢,这很简单。例如,如果我有50k个文档:10k到DB1,10k到DB2,10k到DB3,等等。它们将有顺序ID。看起来我必须为每个数据库指定每个ID?或者我可以做射程。因此,过滤器功能似乎更好。如果我在接收数据库上定义了过滤函数,您可以在复制文档上这样做吗?或者,您可以按照文档建议的方式指定10000个字段吗?哦,对不起,我意识到我实际上没有回答您的问题。我现在更新了我的答案。最后一段特别有用。谢谢你是的,在我写剩下的时候,我才意识到,祝你好运。嗨,还有一个问题。如果要使用命名复制,则需要每月更新该复制。i、 e.每个月都会删除现有的复制,并替换为具有不同ID的新复制,其中大多数ID重叠。在这种情况下会发生什么?理想情况下,复制将停止,然后添加新的复制,然后复制将仅在复制新复制的ID的情况下继续进行。是这样吗?