不同于
memcached
redis key/value 数据库
mongodb文档数据库,存储的是以文档为单位(Bson》json的二进制化)
特点:内部引擎为JS解析器,把文档存储为bson结构,在查询时,转化成js对象并可以
通过熟悉的js语法来操作。
在磁盘上 有一个gridfs(文件系统) 然后二进制化的Bson
操作数据用 JS引擎(v8?)
查询数据的过程:用户发送查询请求(js语句)到js引擎到数据系统里面Bson中找,
找到后转成Json,发送给用户 格式如{name:张三}
mongodb和传统数据库(如mysql)最大的不同。
传统型数据库:结构化数据,定好了表结构后每一行的内容,必是符合表结构的,就是不管是表的
类型还是表的列数都是一样的。
文档型数据库则不同:
不用事先申明表结构,其实也谈不上表结构。里面的类可以不同类型,不同个数。
mongo文档数据库,表下的每篇文档都可以有自己独特的结构,即独特的属性和值。其实就是
json文件。
好处:比如豆瓣 电影有评论,评论后面有回复还有打分
传统的数据库要 电影表,评论表,回复表,打分表。能设计和实现,但是查询和操作非常繁琐。
但是在mongodb中 保存和查询起来非常方便。
如
{
film:'幸福终点站'
long:120,
conmment:[
{
content:影评1
reply:['写的不错'...]
}
]
}
......
文档型数据库
就像树一样可以不停的衍生。
如果在传统的数据库至少要4张表,而且关联度非常复杂。在文档数据库中,通过1篇文档,即可完成。