简介
mongodb是一种介于关系型数据库与非关系型数据库之间的东西,简单来说就是非关系型数据库中最像关系型数据库(这里就不展开解释关系型数据库和非关系型数据库的差别啦)。主要用来存储一些难以结构化或者无需结构化的数据,比如文档啊,音频啊之类的东西。作为主流(emmmm,其实我也不知道算不算主流)数据库的一种,该有的东西基本上都是有的。像最基本的crud,稍微复杂一点的索引,在集群部署上面的分片,副本集。。。。。。我觉得作为基层开发,能够熟练掌握crud已经够够的了,毕竟还有那么多基础等着我们去学,知识总会一样一样的学完的~
基本概念
我相信现在在学习mongodb的兄弟们,一定是已经掌握了至少一种关系型数据库这个磨人的小妖精。不可能连sql都不学就直接来学nosql的吧。所以这里呢我就用一些关系型数据库的概念来类比mongodb里的概念,这样子方便理解也方便记忆。
sql | mongodb | |
---|---|---|
数据库 | 数据库(database) | |
表 | 集合(collection) | |
表中的一行数据 | 文档(document) | |
表的字段 | 键(key) | |
字段的值 | 值(value) | |
索引 | 索引(index) | |
外键的约束 | 没有这种东西 | |
表之间的连接 | 外键都没有连接个锤子 |
由上表,我们可以看到至少mongodb里面没有那么变态的连接查询(左连接啊,右连接啊,全连接啊都去死吧)。然后我们最最基本的数据单位就是文档。从sql的概念推导可知,一个mongodb数据库可以有很多个集合,一个集合可以有很多个文档,一个文档就是一条完整的数据。
长什么样子
在mongodb中,一个文档就是一个BSON(千万记住不是JSON,BSON是基于JSON开发的数据格式,长得跟JSON几乎一摸一样,甚至直接可以当做JSON使用,但是比JSON多了一些特性)。对于一个文档的crud,其实就是对于BSON的操作,强大的一匹!!。
这个是比较简单的一份文档的示例。
_id:类似于是主键,是mongodb自动帮我们生成的,当然我们也可以自己指定;
name:是这份文档的一个属性,它的值是一个数组[1,2,3,4]。
下一章我们来讲mongodb的linux安装(windows就多捞哦~ ) 敬请期待~