MongoDB 入门第一课:走进 MongoDB 的世界

文章目录

    • 1 什么是 MongoDB?
    • 2 MongoDB 与关系型数据库的不同
    • 3 MongoDB 的特点
        • ObjectId
    • 4 MongoDB 的适用场景
    • 5 MongoDB 不适用的场景

1 什么是 MongoDB?

MongoDB 入门第一课:走进 MongoDB 的世界_第1张图片

工欲善其事,必先利其器,在学习 MongoDB 的用法之前,我们先来学习一下 MongoDB 的概念。

MongoDB 是一个基于分布式文件存储的数据库,它由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似于 json 的 bson 格式,因此可以存储比较复杂的数据类型。Mongo 最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

2 MongoDB 与关系型数据库的不同

上面我们说过了,MongoDB 是非关系型数据库,也就是我们常说的 NoSQL,那它与关系型数据库(例如 MySQL)有什么不同呢?

我们可以来看下这张表,关系型数据库的表在 MongoDB 被称为集合,行被称为文档,其他的大体上一致。另外,MongoDB 的数据存储格式为基于 JSON 格式的 BSON,这点与传统的关系型数据库存在差异。
MongoDB 入门第一课:走进 MongoDB 的世界_第2张图片

MongoDB 入门第一课:走进 MongoDB 的世界_第3张图片

3 MongoDB 的特点

MongoDB 高性能、易部署、易使用,存储数据非常方便。

  1. MongoDB 是面向文档存储的,操作比较简单
  2. 可以在 MongoDB 中设置索引
  3. 提供了分片功能,即随着负载的增加,可以分布在计算机网络中的其他节点上
  4. 使用高效的二进制数据存储,包括大型对象
  5. 支持丰富的查询表达式。查询指令使用 JSON 形式的标记,可轻易查询文档中内嵌的对象及数组
  6. MongoDB 会自动将 _id 字段设置为主键
  7. MongoDB 不支持表连接
  8. 模式自由,对于存储在 MongoDB 中的文件,不需要知道它的任何结构定义,甚至我们可以把不同结构的文件存储在同一个数据库里
  9. 部分支持 SQL 语句

ObjectId

ObjectId 类似唯一主键,可用于生成和排序,速度较快,长度为12 bytes。
MongoDB 入门第一课:走进 MongoDB 的世界_第4张图片

  1. 前 4 个字节表示创建 unix 时间戳
  2. 接下来 3 个字节是机器标识码
  3. 接下来 2 个字节是进程 id 组成 PID
  4. 最后三个字节是随机数

MongoDB 中存储的文档必须有一个 _id 键。这个键的值可以是任何类型的,默认是 ObjectId 对象。

4 MongoDB 的适用场景

  1. 网站实时数据处理。MongoDB 非常适合实时的插入、更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性
  2. 由于其高性能,可以作为缓存
  3. 高伸缩性的场景。非常适合由数十或数百台服务器组成的数据库
  4. 数据量为亿万级,或者需要不断扩容
  5. 需要每秒读写达到 2000 - 3000
  6. 需求易变,数据模型无法确定

5 MongoDB 不适用的场景

  1. 要求高度事务性的系统
  2. 复杂的跨文档(表)级联查询
  3. 百分之百写可用的场景:MongoDB 在换主节点时会出现短暂的不可写

参考:MongoDB 教程
MongoDB 入门篇

你可能感兴趣的:(数据库,mongodb,数据库)