MongoDB是一款面向文档的NoSQL数据库,具备较好的扩展性以及高可用性,目标是提供海量数据的存储以及管理能力。
1 概念解析
RDBMS术语/概念 | MongoDB术语/概念 |
---|---|
数据库表table | 集合collection |
行row | 文档document |
列column | 字段field |
表连接table joins | 嵌入文档 |
primary key | MongoDB自动将_id字段设置为主键 |
1.1 数据库
MongoDB的单个实例可容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库放置在不同的文件中。 保留数据库"
- admin: "root"数据库。具备所有数据库的权限,运行特定服务器端命令。
- local: 存储限于本地单台服务器的任意集合,永远不会被复制
- config: 用于保存分片的相关信息
1.2 集合
集合就是 MongoDB 文档组,存在于数据库中,没有固定的结构。当第一个文档插入时,集合就会被创建。
1.3 文档
文档是一组键值对(即BSON),键值对是有序。
2 重要数据类型
2.1 ObjectId
ObjectId 类似唯一主键,可以很快的去生成和排序,包含 12 bytes,含义是:
- 前 4 个字节表示创建 unix时间戳
- 接下来的 3 个字节是机器标识码
- 紧接的两个字节由进程 id 组成 PID
- 最后三个字节是随机数
2.2 时间戳
BSON 有一个特殊的时间戳类型用于 MongoDB 内部使用,与普通的 日期 类型不相关。 时间戳值是一个 64 位的值。其中:
- 前32位是一个 time_t 值
- 后32位是在某秒中操作的一个递增的序数