时间:2017/8/8 10:13:05
参考:
环境:
- MongoDB 3.6.2 Community
简介#
数据类型#
MongoDB 的数据类型包含:
null
:标识空值或字段不存在。布尔
:true 或 false。数字
:32位整型
64位整型
64位浮点类型
。字符串
: 字符串。符号
:对象Id
:ObjectId()
,12个字节。4字节
时间戳,精确到秒。3字节
机器ID(主机名散列值)。2字节
PID。3字节
递增计数器,同一秒内自增。
正则表达式
:文档可以包含正则表达式,JS正则语法。如:{"x":/foo/i}
。-
代码
:可以包含JavaScript
代码。1 2 3 4 5
{"x": function add(){ return 0; } }
最大值
最小值
:可能的最大值或最小值。未定义
:undefined数组
:数组。内嵌文档
:文档里面嵌套文档。
核心概念#
存储#
- 存储引擎
- WiredTiger:3.2及之后版本默认的存储引擎。 提供文档级别的并发模型、检查点、数据压缩和其它特性。企业版支持数据加密。
- MMAPv1:3.2之前版本的默认存储引擎,在大量读写和实时更新方面性能较好。
- In-Memory Storage Engine : 企业版特有,把数据存储在内存中。
-
GridFS:文件存储系统,适用于大文件或大文档。
特性#
- 模式验证 (Schema Validation):限制字段存储数据的类型等。
- 视图:只读,不能改名。3.4+
-
固定容量集合:集合大小固定,类似于一个环,当存储数据超过指定大小时,会删除以前的记录。不能删除元素,不能分片。
1 2 3
# size bytes,最小 4096 db.createCollection("log", { capped: true, size: 100000 } ) db.createCollection("log", { capped: true, size: 5242880, max: 5000 } )
-
文档字段可动态扩展。
- 一个集合可以有
64
个索引。 - 支持文档搜索和地理空间搜索,精简版的 Elasticsearch。
- 支持索引。
- 单文档原子性。
- 集合分片,扩容。
- 主从备份,容灾。
Linux 安装(CentOS)#
-
安装依赖
1
yum install libcurl openssl
-
下载 tar 压缩包,并解压
-
修改
/etc/profile
文件,替换环境变量。1
export PATH=<mongodb-install-directory>/bin:$PATH
-
启动
1
mongod --config ../conf/mongod.conf