如何在Couchbase的同步门方式的配置文件中按通道过滤数据?

时间:2018-08-07 06:36:58

标签: laravel couchbase couchbase-sync-gateway

我通过Api连接到同步门方式,但是我不知道如何过滤一些数据并在我的laravel项目中使用它们。

2 个答案:

答案 0 :(得分:0)

您不是在syncgateway配置中按通道进行过滤,该过滤是同步功能的结果,但更多是将通道附加到文档的被动结果。 我不知道您使用的是哪个版本,因为您的问题缺少它,但是配置非常简单。

基本上,您有2种选择将通道附加到文档,第二种是覆盖第一种: 1.配置文件中没有任何同步功能,仅依赖于“ channels”属性,该属性将使文档同步到适当的通道。 例如:

{ "name": "Duke", "lastName": "Nukem", "channels": ["DukeNukem","Duke"] }

2。在配置文件中具有同步功能: 对于文档:      {“ name”:“ Duke”,“ lastName”:“ Nukem”}

您可能具有将执行相同操作的同步功能:

function(doc, oldDoc){
   if (doc.name && doc.lastName) {
        channel(doc.name);
        channel(doc.name + doc.lastName);
    }
}

请注意,您必须授予用户访问频道的权限。

在客户端,您需要具有该权限的用户,并且如果您不筛选频道-同步时将获得文档。

请阅读更多here

答案 1 :(得分:0)

这是客户端上的一个Swift示例,说明如何使用“通道”路由数据:

let manager = CBLManager()
let database = try! manager.databaseNamed(dbName)
let pull = self.database.createPullReplication(url)
// We need to sync channels 
pull.channels = ["somechannels"]
pull.start()

Store管理应用程序上的一个具体示例,属于商店的每个文档将通过包含storeID的通道进行保存。 在客户端,同步时,我们会将storeID放在channels内,以便同步将仅获取属于该Store的文档。 (我们正在使用默认的同步功能)

请注意,您需要考虑到安全问题,请阅读更多here