一、简介
MongoDB 是一款流行的开源文档型数据库,从它的命名来看,确实是有一定野心的。
MongoDB 的原名一开始来自于 英文单词"Humongous", 中文含义是指"庞大",即命名者的意图是可以处理大规模的数据。
但笔者更喜欢称呼它为 "芒果"数据库,除了译音更加相近之外,原因还来自于这几年使用 MongoDB 的两层感觉:
第一层感受是"爽",使用这个文档数据库的特点是几乎不受什么限制,一方面 Json 文档式的结构更容易理解,而无 Schema 约束也让 DDL 管理更加简单,一切都可以很快速的进行。
第二层感受是"酸爽",这点相信干运维或是支撑性工作的兄弟感受会比较深刻,MongoDB 由于入门体验"太过于友好",导致一些团队认为用好这个数据库是个很简单的事情,所以开发兄弟在存量系统上埋一些坑也是正常的事情。
所谓交付一时爽,维护火葬场… 当然了,这句话可能有些过。 但这里的潜台词是:与传统的 RDBMS 数据库一样,MongoDB 在使用上也需要认真的考量和看护,不然的化,会遇到更多的坑。
那么,尽管文档数据库在选型上会让一些团队望而却步,仍然不阻碍该数据库所获得的一些支持,比如 DB-Engine 上的排名:
MongoDB 中字段的类型是固定的、区分大小写、并且文档中的字段也是有序的。 另外,SQL 还有一些其他的概念,对应关系如下: _id 主键,MongoDB 默认使用一个_id 字段来保证文档的唯一性
图-DBEngine 排名
在全部的排名中,MongoDB 长期排在第 5 位(文档数据库排名第 1 位),同时也是最受欢迎的 NoSQL 数据库。
另外,MongoDB 的社区一直比较活跃,加上商业上的驱动(MongoDB 于 2017 年在纳斯达克上市),这些因素都推动了该开源数据库的发展。
如果对于 MongoDB 的发展史感兴趣,可以参考下没有一个技术天生完美,MongoDB 十年发展全纪录这篇文章。
MongoDB 数据库的一些特性:
面向文档存储,基于 JSON/BSON 可表示灵活的数据结构
动态 DDL 能力,没有强 Schema 约束,支持快速迭代
高性能计算,提供基于内存的快速数据查询
容易扩展,利用数据分片可以支持海量数据存储
丰富的功能集,支持二级索引、强大的聚合管道功能,为开发者量身定做的功能,如数据自动老化、固定集合等等。
跨平台版本、支持多语言 SDK…
假定你是初次了解 MongoDB,下面的内容将能帮助你对该数据库技术的全貌产生一定的了解。
二、基本模型
数据结构对于一个软件来说是至关重要的,MongoDB 在概念模型上参考了 SQL 数据库,但并非完全相同。
关于这点,也有人说,MongoDB 是 NoSQL 中最像 SQL 的数据库…
如下表所示:
https://db-engines.com/en/ranking
db
参考:
https://www.infoq.cn/article/hr3fclptdbxf9j8epo9o
标签:mongodb,数据库,支持,MongoDB,文档,SQL,一些 From: https://www.cnblogs.com/rebrobot/p/17182847.html