1 MongoDB简介
MongoDB是一个面向文档的数据库,与传统的关系型数据库不同,MongoDB中没有行的概念,取而代之的是文档中的内容和数组。这种形式可以灵活的表现各种复杂的层次关系,加快开发者开发进程。
当数据积累到一定程度,当前的服务器性能不足以胜任计算性能和存储空间要求时,应当进行数据库的纵向扩展或者横向扩展。纵向扩展是指单纯提高服务器的硬件性能,横向扩展是指向服务器集群中添加更多的服务器。显然纵向扩展是有极限的,而MongoDB可以进行较为方便的横向扩展,以提高数据库集群的计算能力以及存储空间。
MongoDB支持索引、聚合、特殊的集合类型、文件存储的功能,但是例如连接和复杂的多行事物等是不支持的,这是由于这些功能不方便在分布式系统上实现。
2 基础部分
2.1 文档
文档是一组有序键值对的集合。注意:(1)键中不能含有\0
(表示字符串结尾),.
和$
有特殊含义,不能随意使用;(2)键不能重复;(3)键字符串可以是任意utf-8符号。
2.2 集合
集合是一组文档。虽然可以将不同结构的文档,但是出于方便管理、为集合建立索引以及查询性能的考虑,建议把同种结构、包括同类内容的文档归入同一集合内。这也是为什么设计集合的原因。
类似于文档键的命名规则,集合名的命名规则有:(1)不能为""
;(2)不能包含\0
、$
;(3)不能以system.
开头,这些是系统集合的保留前缀。
可以用.
来进行子集合的组织,构成各种不同的集合子命名空间。
2.3 数据库
数据库由多个集合组成。每个数据库都是独立的,无论是权限还是磁盘存储位置。
与集合名、文档键名类似,数据库名也有相应的命名规则:(1)不能为""
;(2)不能包含\
、/
、*
、"
、<
、>
、|
、?
、、
$
、\0
,推荐使用ASCII中的字母和数字;(3)区分字母大小写,简单起见,均使用小写字母;(4)数据库名最长为64字节。
有一些数据库名是保留的,它们有相应的功能:(1)admin:如果将一个用户加入该数据库,它将获得所有数据库的权限,另外有一些指令必须从admin数据库中启动;(2)local:所有本地的集合都会存到这个数据库中,此外,该数据库不能复制;(3)config:分片信息会保存到这个数据库中。
2.4 安装MongoDB以及启动
安装环境为CentOS 7。
添加官方源到/etc/yum.repos.d/mongo-2.6.repo
:
[mongodb-org-2.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/2.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-2.6.asc
使用yum
开始安装:
yum -y install mongodb-org
启动MongoDB服务:
systemctl start mongod