MongoDB的使用场景和Redis基本一致,但MongoDB的存储方式和Redis不同,且运行效率比Redis低,好处是MongoDB对内存依赖远小于Redis,数据以BSON类型存储在磁盘上,和JSON类型类似

MondoDB和MySQL的区别:

MySQL MongoDB 说明
database database 数据库
table collection 表 / 集合
row document 数据行 / 文档
column field 字段 / 域
index index 索引
table join 嵌入文档 MongoDB的表连接为嵌入文档
primary key primary key MongoDB自动将_id设为主键

MongoDB数据模型BSON详解:

数据类型 描述 举例
字符串 UTF-8字符串都可表示为字符串类型的数据 {“x” : “foobar”}
对象id 对象id是文档的12字节的唯一 ID {“X” :ObjectId() }
布尔值 真或者假:true或者false {“x”:true}+
数组 值的集合或者列表可以表示成数组 {“x” : [“a”, “b”, “c”]}
32位整数 类型不可用。JavaScript仅支持64位浮点数,所以32位整数会被

自动转换。 | shell是不支持该类型的,shell中默认会转换成64 位浮点数 | | 64位整数 | 不支持这个类型。shell会使用一个特殊的内嵌文档来显示64位 整数 | shell是不支持该类型的,shell中默认会转换成64 位浮点数 | | 64位浮点数 | shell中的数字就是这一种类型 | {“x”:3.14159,”y”:3} | | null | 表示空值或者未定义的对象 | {“x”:null} | | undefined | 文档中也可以使用未定义类型 | {“x”:undefined} | | 符号 | shell不支持,shell会将数据库中的符号类型的数据自动转换成 字符串 |
| | 正则表达式 | 文档中可以包含正则表达式,采用JavaScript的正则表达式语法 | {“x” : /foobar/i} | | 代码 | 文档中还可以包含JavaScript代码 | {“x” : function() { / …… / }} | | 二进制数据 | 二进制数据可以由任意字节的串组成,不过shell中无法使用 |
| | 最大值/最 小值 | BSON包括一个特殊类型,表示可能的最大值。shell中没有这个 类型。 |
|