2

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

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

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

这个假设正确吗?

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

4

2 回答 2

0

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

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

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

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

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

(注 2:我是一个服务器端程序员,所以这个观点被污染了。)

于 2016-04-21T10:43:01.080 回答
0

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

可能对也可能不对,但适用于我的情况....

于 2016-04-24T14:56:57.770 回答