如何在 Couchbase 同步网关方式的配置文件中按通道过滤数据?
How to filter data by channel in config file of sync gate way in Couchbase?
我通过 Api 连接到同步网关,但我不知道如何过滤一些数据并在我的 laravel 项目中使用它们。
您没有在 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
这是客户端的 Swift 示例,说明如何使用 "channels" 路由数据:
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
的文档。 (我们使用的是默认同步功能)
请注意,您需要考虑一些安全问题,阅读更多内容 here。
我通过 Api 连接到同步网关,但我不知道如何过滤一些数据并在我的 laravel 项目中使用它们。
您没有在 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
这是客户端的 Swift 示例,说明如何使用 "channels" 路由数据:
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
的文档。 (我们使用的是默认同步功能)
请注意,您需要考虑一些安全问题,阅读更多内容 here。