CouchDB学习笔记
CouchDB似乎用的人不多。大多数类似应用都是用的mongodb。 最近想看看有没有能在浏览器端访问服务器restful接口的库.看到了Pouchdb。(https://pouchdb.com/)
pouchdb是couchdb的浏览器版本。可以和couchdb同步,也可以直接使用couchdb。
仔细看了下。couchdb+pouchdb的组合。
有点相当于
- loopback (http://loopback.io/)
- parse (https://parse.com/)
- leancloud (https://leancloud.cn/)
CouchDB看似相对简单些。
比较文章(https://forum.ionicframework.com/t/what-are-the-differences-between-couchdb-firebase-parse-and-pouchdb/36001/2) 重点在parse的用户管理(重置密码什么的)比较简单。
搜这个比较文章的时候又看到2个东西(Firebase,kinto)
Kinto is a generic JSON document store with
sharing and synchronisation capabilities.
(Python+Postgresql)
https://www.kinto-storage.org/
http://kinto.readthedocs.io/en/latest/overview.html
CouchDB的安全
http://docs.couchdb.org/en/2.0.0/intro/security.html
https://github.com/nolanlawson/pouchdb-authentication
https://www.joshmorony.com/creating-a-multiple-user-app-with-pouchdb-couchdb/
默认情况下,couchdb允许localhost上的任意读写。
admin可以在
http://127.0.0.1:5984/_utils/ 上面建立
也可也这样建立 curl -X PUT $HOST/_config/admins/anna -d '"secret"'
存在etc/local.ini中
普通用户在_user表中
需要先在http://127.0.0.1:5984/_utils/ 上setup。否则默认的_user表不出现
在一个普通表中,用户又分为members和admins
共同点,都能读写表
不同点:admins可以改写design document
默认表中,不是系统管理员的,都是普通用户(包括匿名用户)
要把用户设为管理员,得用服务器管理原设置_security
curl -X PUT http://localhost:5984/mydatabase/_security \
-u anna:secret \
-H "Content-Type: application/json" \
-d '{"admins": { "names": [], "roles": [] }, "members": { "names": ["jan"], "roles": [] } }'
couchDB最麻烦的时更新的时候要有_rev
查询并不很方便
权限设定是基于表的,然而一个表内有多个用户的数据,基于记录的权限设定很必要。
备份dump/restore
https://github.com/raffi-minassian/couchdb-dump