【问题标题】:Cloudant / CouchDB "pull" replication for 600+ documents to iPhoneCloudant / CouchDB 将 600 多个文档“拉”复制到 iPhone
【发布时间】:2013-09-03 23:15:30
【问题描述】:

我正在使用 Cloudant,我正在努力将 600 个文档从服务器提取/复制到我的 iPhone。首先,它非常慢,因为它必须一次处理一个文档,并且 Second Cloudant 在第 100 个左右的 REST 请求之后给了我“超时”。 (我有一张 Cloudant 的票,因为这是不可接受的!)

我想知道是否有人在拉动时找到了“批量”复制的方法/破解。我在想,也许可以“压缩”所有更改,将它们发送到一个文件中,然后将 iPhone 数据库快进到最后一个更改序列。

任何帮助都很棒——谢谢!

【问题讨论】:

  • 抱歉,我很困惑,您是要复制整个数据库还是仅复制一些文档?因为如果只是一些,你可以使用“doc_ids”:[“1”,“2”...],如果是整个数据库,那么你可以复制整个数据库,不是吗?

标签: iphone couchdb cloudant couchcocoa


【解决方案1】:

你不能点击 _all_docs?include_docs=true 来一口气搞定一切吗? http://wiki.apache.org/couchdb/HTTP_Document_API#all_docs

我不知道 couchcoccoa,但看起来 API 支持这个:http://couchbaselabs.github.com/CouchCocoa/docs/interfaceCouchDatabase.html#a49d0904f438587b988860891e8049885

【讨论】:

  • 我可以做 _all_docs,但我仍然需要找出 last_seq 并手动更新它......对吗?我认为这不会是需要发生的多个拉取复制的最佳解决方案(例如,如果我第一次检索所有文档,而第二次只有 2 个新文档,但我仍然会全部搞定...)感谢您的意见,我仍在学习 Couch 及其工作原理 :)
【解决方案2】:

其实,为什么不做一个视图。创建一个视图,为您提供您的列表,并确保您的 id 在那里。使用您的 ID,您可以转到文档并获取所需的所有其余信息,以便在需要时对其进行更新。

确实没有理由需要单独点击每个文档。他们对此有意见和search2.0。请记住,您使用的是基于云的技术。这些东西不在你的地下室里,你不能在几秒钟内每台设备点击它一百万次,并期望任何人都不会注意到和/或不高兴(夸大其词,是的,我知道)。

我不明白的是你想把它复制到 iPhone 上?你在你的应用程序中运行 apache 和 couchdb 吗?为什么不直接读取 JSON 数据并将其放入数据库中。或者如果它更新那么多并继续覆盖它,就把它扔到一个文件中。有这么多的选择完全不那么混乱。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-12
    • 1970-01-01
    相关资源
    最近更新 更多