CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛

程序员应知应会之文档数据库CouchDB-永久免费的源码丞旭猿

相比于著名的结构化数据库或者是NoSQL数据库而言,文档数据库CouchDB并不算太知名。但是在其应用领域之中,它的优势则是非比一般。

不同于结构化数据库事先定义了数据的每一个字段,CouchDB认为数据并不需要非要拥有它并不需要的字段,例如对于名片这个实体而言,有些人的名片上有微信号,而有些人的名片上则没有。因此,微信号对于名片而言,并不是一个必选项。而结构化数据库认为应该有一个允许为空的微信号字段,对于那些没有微信号的名片,可以不填写此项。而对于CouchDB来说,则这个字段是并不需要的。

打开网易新闻 查看精彩图片

文档数据库的出现并不是为了替代结构化数据库,而是适用于那些更适用于面向文档模型,而不是面向实体关系模型的那些应用,例如wiki、博客,或者是司法案例数据库等。CouchDB 的模型中,实体间关系是被强烈弱化的,因此,在其设计中并没有主键和外键之类的关系。而更像是一群刚参军的新兵,彼此之间没有任何的关系,而只是听从统一的指令来匹配自身的特点,从而使得自己被发令者所见。例如说:身高高于180cm的新兵请出列。每名新兵会根据这一指令和自身情况向前一步,而无须了解其它新兵的情况。

CouchDB是为网络应用而诞生的文档数据库,它采用JSON格式作为文档存储格式,并通过Restful风格的API经由HTTP协议对其进行操作。

例如列出CouchDB服务器上的所有数据库。

命令为:

curl -X GET http://admin:password@127.0.0.1:5984/_all_dbs

对于一个新安装的数据库而言,你会得到如下的结果:

[“_replicator”,”_users”]

新建一个数据库的命令同样简单:

curl -X PUT http://admin:password@127.0.0.1:5984/baseball

CouchDB会回复:

{“ok”:true}

类似的,删除数据库的操作也是Restful的风格:

curl -X DELETE http://admin:password@127.0.0.1:5984/baseball

当然,通过这种命令的模式略微繁琐了一点,CouchDB提供了一个管理界面Fauxton,这是一个类似于PHPMyAdmin的管理界面。在其中,可以进行简单的图形界面操作。

安装好CouchDB之后,通过如下的URL进入Fauxton:

http://127.0.0.1:5984/_utils/

在这里,可以方便的进行对于文档和数据库的增删改查操作。同样的,也可以使用Mango Query对文档进行查询。

例如在CouchDB中存储着如下的三份文档:

{ “_id”: “00a271787f89c0ef2e10e88a0c0001f4”,

“type”: “movie”,

“title”: “My Neighbour Totoro”,

“year”: 1988,

“director”: “miyazaki”,

“rating”: 8.2}

{ “_id”: “00a271787f89c0ef2e10e88a0c0003f0”,

“type”: “movie”,

“title”: “Kikis Delivery Service”,

“year”: 1989,

“director”: “miyazaki”,

“rating”: 7.8}

{ “_id”: “00a271787f89c0ef2e10e88a0c00048b”,

“type”: “movie”,

“title”: “Princess Mononoke”,

“year”: 1997,

“director”: “miyazaki”,

“rating”: 8.4}

我们首先要建立一个Mango Index,指明其中可以被查询的字段,例如我们可以选择其中的year字段进行索引。在Fauxton的数据库总览界面中点击运行Mango查询,然后点击管理索引,将索引字段变成如下的格式:

{ “index”: {

“fields”: [ “year” ] },

“name”: “year-json-index”,

“type”: “json”}

这样我们就可以采用Mango Query来对其进行查询了。像这样:

{ “selector”: {

“year”: {

“$eq”: 1988

我们就可以查询到发行日期为1988年的影片,即My Neighbour Totoro。

以上就是对于CouchDB的一个简单介绍。另外一个值得注意的话题就是CouchDB与同为文档数据库的MongoDB的比较。总的来说,CouchDB的性能是不如MongoDB的。但是CouchDB的易用性会更好一些。

二者之间的主要区别如下表所示:

打开网易新闻 查看精彩图片

喜欢本文的话,欢迎关注活在信息时代哦:)

声明:本文部分素材转载自互联网,如有侵权立即删除 。

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容