请求反馈:Couchdb 设置与多个 users/accounts 的客户端复制 (pouchdb)

Request for feedback: Couchdb setup with client replication (pouchdb) for multiple users/accounts

在开始开发之前,我想获得有关我正在考虑进行的更改的反馈,从 mongo 搬到沙发上。

基本上我有一个 web 应用程序,用于帮助组织用户活动(todolist、日历、笔记、日记)。它目前使用 mongodb,但我正在考虑将其移至 couch,主要是由于 couches 复制能力和 clientdb 交互 (pouchdb)。我在浏览器上有一个类似的本地存储设置,由 mongo 支持,但我正在寻找更成熟的解决方案。

由于 couchdb 与 mongodb 的不同之处,我认为每个用户都应该拥有自己的 couch db,并且他们的文档是我的每个应用程序组件。基本上,由于本地数据库复制和安全性,我必须将所有内容都提升到 couch 级别。

我有 3 个问题。

1) 我假设 couch 没有文档级别 security/authentication,对吗? (因此我将每个用户资产移动到他们自己的数据库,好主意吗?)

2) 我的计划是让用户登录网站,然后我的后端 nodejs 代码对他们进行身份验证,并向他们发送一些 auth/session 令牌。客户端上的 javascript 然后使用其本地 pouchdb 数据进行自我设置,并将复制请求直接发送到 couchdb 服务器(使用它从我的服务器端进程获得的身份验证令牌)。他们应该只能访问他们的数据库,因为我可以对每个数据库进行身份验证访问(正确吗?) 你觉得这个设置怎么样?它应该有效吗?

3) 关于couchdb 服务提供商,为什么他们的couch 版本差异如此之大? IE、happycouch、1.6.1、iris 1.5、cloudant、1.0.2?而且我还听说 couchdb 2.0 即将推出......我想使用 cloudant,但是 1.0.2 是从 1.6 或 1.5 回来的这么多版本,如果我不做任何异国情调,这有关系吗?

奖金问题 :p 接上一个问题,您是否知道托管 node.js 并且有可用的本地 couchdb 实例的任何服务?我想使用我的后端服务器代码作为代理,但不以另一个网络跃点为代价。

非常感谢您的反馈, 保罗

Due to how couchdb differs from mongodb, I'm thinking that each user should have their own couch db

这是 CouchDB 的最佳实践。不错的选择。

I assume that couch does not have document level security/authentication, correct? (Hence me moving each user assets to their own database, good idea?)

你是正确的:https://github.com/nolanlawson/pouchdb-authentication

My plan is have users login to the website...

是的。您可以直接将 cookie headers 从 Node.js 传递到 CouchDB,它会正常工作。 nano 有一些关于如何做到这一点的文档:https://github.com/dscape/nano#using-cookie-authentication

Regarding couchdb service providers, why do they vary so much on their couch version

Couch 社区是一个快乐的支离破碎的大家庭。 :)

I'd like to use cloudant, but 1.0.2 is so many versions back from a 1.6 or 1.5, if I'm not doing anything exotic, does it matter?

1.0.2 是指 Cloudant 分叉 CouchDB 的时间。从那时起,他们添加了很多自己的功能,现在已经差不多 feature-equivalent。

各种 Couch 实现之间的最大区别在于身份验证。每个人(Cloudant、CouchDB、Couchbase)的做法都不一样。