目录
1.MongoDB与传统关系型数据库(TRDB)的对比
MongoDB | TRDB | 比较说明 |
数据库DB | 数据库DB | 都有数据库的概念。需要使用命令建立 |
集合 | 表 | 集合对应TRDB中的表。不同的是表需要事先定义结构,但集合不需要定义 |
文档 | 行 | 每个文档都有一个 一个文档就类似于关系型数据库中的一条记录。 |
键值对 | 字段值 | 键值对就类似于字段值。只不过键值对可以存储更复杂的数据类型 |
2.数据库命名注意事项
序号 | 注意事项 |
1 | 不能有空字符串 |
2 | 不得含有空格、.(点)、$、\、/、\0(空字符) |
3 | 区分大小写,建议全部小写 |
4 | 名称做多64位 |
5 | 不得使用保留的数据库名。如:admin、local、config、test |
3.集合命名注意事项
序号 | 注意事项 |
1 | 不能有空字符串 |
2 | 不得含有$、\0(空字符) |
3 | 不能以"system."开头,这是为系统集合保留的前缀 |
4 | 用"."来组织子集合,如test.demo |
4.文档键的命名注意事项
序号 | 注意事项 |
1 | 不能包含\0字符(空字符),这个字符表示键的结束 |
2 | "."和"$"是系统保留的,只能在特定条件下使用 |
5.文档值的命名注意事项
序号 | 数据类型 | 描述 | 举例 |
1 | null | 表示空值或者未定义的对象 | {"name":null} |
2 | 布尔值 | 真(true)或者假(false) | {"isNull":true} |
3 | 32位整数 | shell不支持这种类型,默认会转成64位浮点数,也可以使用NumberInt类 | {"number":NumberInt("5")} |
4 | 64位整数 | shell不支持这种类型,默认会转成64位浮点数,也可以使用NumberLong类 | {"number":NumberLong("5")} |
5 | 64位浮点数 | shell中的数字就是这种类型 | {"price":22.9} |
6 | 字符串 | UTF-8字符串 | {"name":"Jack"} |
7 | 对象id | 文档的12字节的唯一标识,保证一条文档记录的唯一性。允许自定义 | {"id":ObjectId()} |
8 | 日期 | 从标准纪元开始的毫秒级 | {"dtDate":new Date()} |
9 | 正则表达式 | 文档中可以包含正则表达式,遵循JavaScript语法,查询的时候, 使用正则表达式作为限定条件。 | {"item"????[abc]/} |
10 | 代码 | 文档中可以包含JavaScript代码 | {"nodeprocess":function(){}} |
11 | 数组 | 值的集合或者列表 | {"books":["三国演义","水浒传","红楼梦"]} |
12 | 内嵌文档 | JSON、XML等文档 | ⽤于嵌⼊式的⽂档, 即⼀个值为⼀个⽂档 |
作者:奔跑的金鱼