目录



1.MongoDB与传统关系型数据库(TRDB)的对比

MongoDB

TRDB

比较说明

数据库DB

数据库DB

都有数据库的概念。需要使用命令建立

集合

集合对应TRDB中的表。不同的是表需要事先定义结构,但集合不需要定义

文档

每个文档都有一个​​_id​​,​​_id​​值在文档所属集合中是唯一的,

一个文档就类似于关系型数据库中的一条记录。

键值对

字段值

键值对就类似于字段值。只不过键值对可以存储更复杂的数据类型

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等文档

⽤于嵌⼊式的⽂档, 即⼀个值为⼀个⽂档


作者:奔跑的金鱼