主要特点
- MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
- 以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。
- 可以在MongoDB记录中设置任何属性的索引来实现更快的排序。
- 支持的数据非常松散,为Bason格式(对Json格式的扩充),存储的数据类型可以比较复杂
- Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。
- 支持高效地二进制数据存储,包括大型对象,视频等
- 支持动态查询
- 支持复制和故障恢复
- 支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言
体系结构
数据类型
序号 | 类型 | 解释 | 示例 |
1 | null | null表示空值或者不存在的字段 | {“a” : null} |
2 | 布尔型 | 与java的boolean一样 | {“a” : true} |
3 | 数值 | shell默认使用64位浮点类型数值,NumberInt表示4位节符号整数,NumberLong表示8位节符号整数 | {“a” : 1.34}、{“a”:3}–{NumberInt(“3”)}–{NumberLong(“6”)} |
4 | 字符串 | UTF-8的字符串 | {“a” : "呵呵哒“} |
5 | 日期 | 日期时间。用 UNIX 时间格式来存储当前日期或时间。你可以指定自己的日期时间:创建 Date 对象,传入年月日信息 | {“x”:new Date()} |
6 | 正则表达式 | 语法与js的正则表达式形同 | {”x“😕[abc]/} |
7 | 数组 | 用于将数组或列表或多个值存储为一个键 | {[“a”,[b]],[c]} |
8 | 内嵌文档 | 可内嵌文档,被嵌套文档作为值来处理 | {”x“:{“a”:2}} |
9 | 对象id(_id) | 对象id是一个12字节的ID,我文档的唯一表示,对象的默认主键 _id 就是一个对象id | {“a” : ObjectId()} |
10 | 二进制数据 | 任意字节的字符串。不能直接在shell中使用存储非utf-字符,二进制是唯一方式 | – |
11 | 代码 | 用于在文档中存储 JavaScript 代码 | {”x“:function(){/…/]} |
9、
可以用UTF-8字符串保存到文档中,不能使用shell进行保存
10、代码 {“a” : function() { /* … */ }}
使用情况:
- 数据量大
- 数据价值较低
- 写入操作频繁