1、文档

1) 概念:文档是将多个键及其关联的值有序地放置在一起。

1
{"name": "wenyi", "say": "Hello, world!"}

2) 特性:

  • 文档中的键值对是有序的

  • 文档的键是字符串

  • 文档不能有重复的键

3) 键的命名:

  • 不能含有 \0 (空字符)

  • 不能包含 . 和 $ 等有意义的字符

  • 以下划线 _ 开头的键是保留的

2、集合

1) 概念:

  • 集合是一组文档。

  • 子集合是使用 . 字符分开的俺命名空间划分的集合。

2) 特性:

  • 集合是无模式的。

  • 建议将同种类型的文档放入同个集合中,可以更有效的索引。

  • 建议使用子集合来组织数据。

3) 集合的命名:

  • 不能是空字符串

  • 不能含有 \0 (空字符)

  • 不能以系统保留前缀 system. 开头

  • 不能含有保留字符 $

3、数据库

1) 多个集合组成数据库,不同的数据库放置在不同的文件中,建议将一个应用的所有数据都存储到同个数据库中。

2) 命名:

  • 不能是空字符串

  • 不得含有 空格 . $ / \ 和 \0 (空字符)

  • 应全部为小写

  • 最多 64 字节

4、MongoDB shell

1) 运行 shell

1
mongo

2) shell 的基本操作

  • 创建: insert()

  • 读取: find(), findOne()

  • 更新:update()

  • 删除: remove()

3) 帮助命令

1
2
help
db.help()

5、数据类型

  • null:表示空值或者不存在的字段

  • 布尔值:true 和 false

  • 32 位整数

  • 64 位整数

  • 64 位浮点数

  • 字符串

  • 符号

  • 对象 id:ObjectId(), 文档的 12 字节的唯一 ID “_id”

  • 日期:存储从标准纪元开始的毫秒数

  • 正则表达式:采用 JavaScript 正则表达式语法

  • 代码:采用 JavaScript 代码

  • 二进制数据

  • 最大值

  • 最小值

  • undefined:未定义

  • 数组

  • 内嵌文档:文档包含文档