Couchbase Sync Gateway:每个数据库有多个存储桶

时间:2016-01-10 12:12:00

标签: couchdb couchbase pouchdb couchbase-sync-gateway

我盯着用CouchDB建立服务。该应用程序旨在让用户拥有无限的存储桶,原因有几个,而且效果很好。 现在我因为一些企业功能而转向Couchbase。我使用PouchDB,这就是我需要Sync Gateway的原因。遗憾的是,我只能映射一个桶/数据库。

这对我来说是一个完美的解决方案:/ db / bucket / etc

任何想法如何实现这一目标?

1 个答案:

答案 0 :(得分:5)

Couchbase Server存储桶可以保存任意数据。对于Sync Gateway,Couchbase Server存储桶仅是存储引擎目标,与用户和数据访问无关。在Sync Gateway配置文件中,您可以列出持久存储到不同存储桶的多个数据库:

{
  "databases":{
    "db1": {
      "server": "http://localhost:8091",
      "bucket": "db1bucket"
    },
    "db2": {
      "server": "http://101.88.47.22:8091",
      "bucket": "db2bucket"
    }
  }
}

现在,让我们假设您在配置文件中只声明了一个数据库,并希望用户能够访问某些文档。您可以使用其中一个authentication methods,然后根据该Sync Function写一个channels,它将在channel names to the replicator中路由文档,并授予用户访问这些频道的权限。频道是动态创建的,并且可以创建的频道数量没有限制。如果您不希望使用用户身份验证来访问频道中的文档,则可以在客户端指定Naming Files, Paths, and Namespaces(这更简单)。

建议的方法是每个项目或应用程序使用一个Sync Gateway数据库,而不是每个用户。因此,您可能必须将文档从不同的CouchDB数据库迁移到一个Sync Gateway数据库中。