MongoDB笔记0x00

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

Author: SinLapis
Link: http://sinlapis.github.io/2017/10/20/MongoDB笔记0x00/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.