MongoDB|基本了解

Abstract:MongoDB是文档型NoSQL数据库,文档以由JSON字符串组成的文档形式保存,通过key-value键值对表示数据。关于数据库类型的选择:脱离具体业务场景的选择问题都是伪命题。MongoDB在特定的使用场景下的优势明显。

定位

  • 通用数据库
  • 流行度远不及MySQL,但潜力很大

特点

  • 文档型(Document store)的NoSQL数据库,数据以文档(对应关系型数据库的记录,本文有时候会混用)的形式在MongoDB中保存文档实际上就是一个个JSON字符串(使用JSON的好处是非常直观,通过一系列的Key-Value键值对来表示数据,符合我们的阅读习惯)。

在主流的计算机语言如Java、Python中对JSON都有很好的支持,数据从MongoDB中读取出来后,可无需转换直接使用。

  • Key-Value键值对支持丰富的数据结构,Value可以是普通的整型、字符串,可以是数组,也可以是嵌套的子文档,使用嵌套的好处是在MongoDB中仅需一次简单的查询就能够获取到你所需的数据。

选择什么数据库?

  • 脱离具体业务场景的选择问题都是伪命题。

选择MongoDB的场景

  • 无需要跨文档或跨表的事务及复杂的join查询支持
  • 敏捷迭代的业务,需求变动频繁,数据模型无法确定
  • 存储的数据格式灵活,不固定,或属于半结构化数据
  • 业务并发访问量大,需数千的QPS
  • TB级以上的海量数据存储,且数据量不断增加
  • 要求存储的数据持久化、不丢失
  • 需要99.999%的数据高可用性
  • 需要大量的地理位置查询、文本查询
Thanks!