可以在客户端拉取/复制同步网关视图吗?

时间:2016-03-28 17:10:46

标签: couchbase-lite couchbase-view couchbase-sync-gateway

我有这个用例,我根据10天的滚动时间窗口在同步网关上创建了服务器端视图。有没有办法在我的设备端直接拉出那些?

当我查看文档时,我发现这些文件无法直接复制,需要进行REST调用:

http://developer.couchbase.com/documentation/mobile/1.2/develop/guides/sync-gateway/accessing-cb-views/index.html

这个假设是否正确?

我看到的另一种方法是让所有数据在客户端复制,然后使用Map reduce函数在客户端编写Couchbase lite视图。哪一个是2中的正确方法?

2 个答案:

答案 0 :(得分:0)

是的我相信您的假设是正确的 - 必须通过公共REST API直接查询视图。我也相信你的同步数据然后在客户端查询它的解决方案也会有效。

为了找到正确的方法"我会考虑您的应用需求和部署工作流程:

  • 在服务器上使用视图需要:
    • 管理(CRUD)SG中的视图 - 类似于管理数据库中的功能。理想情况下,这些将由某些部署/管理代码管理。
    • 客户端需要能够对公共接口进行API调用才能访问视图信息。这需要缓存才能脱机工作。
  • 在本地切片数据意味着同步将关闭所有数据,设备必须执行先前由服务器执行的搜索/切片/聚合。这将:
    • 离线工作。
    • 给应用设备带来额外的压力。

我不认为这里有任何简单的答案 - 理想情况下,视图会同步到设备,但我不知道当前的SG实现是否可以实现。< / p>

(注1:视图必须通过管理REST界面在Sync Gateway中创建,而不是通过Couchbase Web界面创建。)

(注2:我是服务器端程序员,因此该视图受到污染。)

答案 1 :(得分:0)

我最终做的是编写webhooks,这基本上让我将相同的文档复制到Couchbase服务器上。然后我做了所有需要的聚合并将它们推送到syn gatewy(它被复制到应用程序)。

May或mayn是对的,但适合我的情况......