我盯着用CouchDB建立一个服务.该应用程序旨在让用户拥有无限的存储桶,原因有几个,而且效果很好.现在我因为一些企业功能而转向Couchbase.我正在使用PouchDB,这就是我需要Sync Gateway的原因.可悲的是,我只能映射一个桶/数据库.
这对我来说是一个完美的解决方案:/ db/bucket/etc.
任何想法如何实现这一目标?
Couchbase服务器存储桶可以保存任意数据.对于Sync Gateway,Couchbase Server存储桶仅是存储引擎目标,与用户和数据访问无关.在Sync Gateway配置文件中,您可以列出持久存储到不同存储桶的多个数据库:
{ "databases":{ "db1": { "server": "http://localhost:8091", "bucket": "db1bucket" }, "db2": { "server": "http://101.88.47.22:8091", "bucket": "db2bucket" } } }
现在,我们假设您在配置文件中只声明了一个数据库,并希望用户可以访问某些文档.您可以使用其中一种身份验证方法,然后根据该方法编写一个同步功能,该功能将在通道中路由文档并授予用户对这些通道的访问权限.通道是动态创建的,并且创建的数量没有限制.如果您不希望使用用户身份验证来访问通道中的文档,则可以在客户端为复制器指定通道名称(这更简单).
建议的方法是每个项目或应用程序使用一个Sync Gateway数据库,而不是每个用户.因此,您可能必须将文档从不同的CouchDB数据库迁移到一个Sync Gateway数据库中.