【问题标题】:How to/Can we apply a "limit" when we use replication in Cloudant?当我们在 Cloudant 中使用复制时,我们如何/可以应用“限制”?
【发布时间】: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


【解决方案1】:

您是正确的,您可以在复制时过滤文档以选择具有特定特征的文档(例如仅复制 x >1 的文档,或仅复制未删除的文档)。

但您不能将复制作业限制为多个文档;它将一直持续到完成,或者在连续复制的情况下,随着数据的变化,它将继续将“foo”中的新/更新/删除文档复制到“bar”。

【讨论】:

  • 非常感谢。这也是我在阅读所有文档后得出的结论。感谢您的确认。干杯!
猜你喜欢
  • 2020-06-03
  • 2017-02-04
  • 2020-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-20
相关资源
最近更新 更多