【发布时间】:2015-11-03 11:20:20
【问题描述】:
我正在将名为“foo”的数据库复制到名为“bar”的数据库中。 foo 中有 10 个文档。 5 个文档有一个名为“flag”的字段设置为“true”。 我正在使用一个过滤器进行复制,如果“标志”为“真”,则返回真。
现在,就像我为复制设置“过滤器”参数一样,我也想设置一个“限制”参数,以便只复制 2 个文档。 我知道我们可以为“_all_docs”、“_changes”等其他端点设置“限制”参数,但它似乎不适用于复制。 Cloudant 文档中也没有关于复制设置限制的内容。
我们甚至可以为复制设置一个“限制”参数吗?如果是这样,我该怎么做? 非常感谢。
【问题讨论】:
-
我也在考虑同样的事情。我想要实时复制,但仅限于有限数量的文档(所以我总是有 100 个最近的文档),以减少负载。我的文件是按时间顺序排列的。对我来说,精确到 100 并不重要,但要有一个总体限制。因此,我正在考虑在复制之前先手动获取第 100 个文档;然后使用它的时间戳仅过滤较新的文档。本地数据库当然会增长到 100 以上,但至少不是 1 Mio 左右。 ;) 您是否找到了适合您的案例的解决方案?
-
嗯,首先,就像我发现的那样,就像@GlynnBird 所说的那样,我们不能对复制应用限制。当我阅读并尝试更多的复制时,它变得越不有趣。这是一个很好的功能,但肯定有很多限制。一个突出的是,很多时候,复制所花费的时间很长。而且,如果您问我,如果您不是在连续模式下使用复制,那么以一种方式使用复制确实没有真正的优势。当然,这只是我个人的意见,基于我的用例经验。当然,我可能错了。
-
所以我所做的是使用复制进行推送,并使用搜索索引进行拉取。我觉得搜索索引绝对很棒。它们在仅索引我们感兴趣的字段方面提供了极大的灵活性。当然还有限制和书签功能可用于分页。因此,对于您的问题,您可以尝试搜索索引。干杯!
标签: couchdb database-replication cloudant