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



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

您在syncgateway配置中没有按通道进行过滤,过滤是同步功能的结果,但它更多的是将通道附加到文档的被动结果。我不知道你使用的是哪个版本,因为你的问题没有,但配置很直接。

您基本上有两种将通道附加到文档的选项,第二种是覆盖第一种: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);
}
}

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

在客户端,您需要具有权限的用户,如果您不筛选频道,那么无论何时同步,都会获得文档。

请在这里阅读更多

以下是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管理应用程序的一个具体示例是,属于Store的每个文档都将与包含storeID的通道一起保存。在客户端,当同步时,我们将把storeID放在channels中,这样同步将只获得属于该Store的文档。(我们使用默认的同步功能(

请注意,您需要考虑一些安全问题,请在此处阅读更多信息。

最新更新