微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MongoDB解析

--- 数据库管理系统

数据库管理系统主要分为俩大类:RDBMS、NOSQL。在个人电脑、大型计算机和主机上应用最广泛的数据库管理系统是关系型DBMS。NoSQL是对不同于传统的关系数据库的数据库管理系统的统称。

两者最重要的不同点是NoSQL不使用SQL作为查询语言。其数据存储可以不需要固定的表格模式,也经常会避免使用SQL的JOIN操作,一般有水平可扩展性的特征。

常见的数据库管理系统,及其排名情况如下:

 

NoSQL数据库四大家族

NoSQL中的四大家族主要是:列存储、键值、图像存储、文档存储,其类型产品主要有以下这些。

存储类型

NoSQL

键值存储

最终一致性键值存储

Cassandra、Dynamo、Riak、Hibari、Virtuoso、Voldemort

内存键值存储

Memcached、Redis、Oracle Coherence、NCache、Hazelcast、Tuple space、Velocity

持久化键值存储

BigTable、LevelDB、Tokyo Cabinet、Tarantool、TreapDB、Tuple space

文档存储

MongoDB、CouchDB、SimpleDB、 Terrastore 、 BaseX 、Clusterpoint 、 Riak、No2DB

图存储

FlockDB、DEX、Neo4J、AllegroGraph、InfiniteGraph、OrientDB、Pregel

列存储

Hbase、Cassandra、Hypertable

NoSQL的优势

  高可扩展性、分布式计算、没有复杂的关系、低成本

  架构灵活、半结构化数据

NoSQL与RDBMS对比 

NoSQL

RDBMS

代表着不仅仅是SQL

没有声明性查询语言

没有预定义的模式

键 - 值对存储,列存储,文档存储,图形数据库

最终一致性,而非ACID属性

非结构化和不可预知的数据

CAP定理

高性能,高可用性和可伸缩性

高度组织化结构化数据

结构化查询语言(SQL) (SQL)

数据和关系都存储在单独的表中。

数据操纵语言,数据定义语言

严格的一致性

基础事务

 

--- MongoDB介绍

MongoDB的特性

 

除了上图所示的3大技术特色还支持

  二级索引、动态查询、全文搜索 、聚合框架、MapReduce、GridFS、地理位置索引、内存引擎 、地理分布等一系列的强大功能。

但是其也有些许的缺点,例如:

  多表关联: 仅仅支持Left Outer Join

  SQL 语句支持: 查询为主,部分支持

  多表原子事务: 不支持

  多文档原子事务:不支持

  16MB 文档大小限制,不支持中文排序 ,服务端 Javascript 性能欠佳

存储方式对比

     在传统的关系型数据库中,存储方式是以表的形式存放,而在MongoDB中,以文档的形式存在。

 

数据库中的对应关系,及存储形式的说明

 

MongoDB与SQL的结构对比详解

SQL Terms/Concepts

MongoDB Terms/Concepts

database

database

table

collection

row

document or BSON document

column

field

index

index

table joins

embedded documents and linking

primary key

Specify any unique column or

column combination as

primary key.

primary key

In MongoDB, the primary key is

automatically set to the _id field.

aggregation (e.g. group by)

aggregation pipeline

See the SQL to Aggregation Mapping

Chart.

 

MongoDB数据存储格式

  • JSON格式

  JSON 数据格式与语言无关,脱胎于 JavaScript,但目前很多编程语言都支持 JSON 格式数据的生成和解析。JSON 的官方 MIME 类型是 application/json,文件扩展名是 .json。

  MongoDB 使用JSON(JavaScript ObjectNotation)文档存储记录。

  JSON数据库语句可以容易被解析。

  Web 应用大量使用,NAME-VALUE 配对

 

  • BSON格式

  BSON是由10gen开发的一个数据格式,目前主要用于MongoDB中,是MongoDB的数据存储格式。BSON基于JSON格式,选择JSON进行改造的原因主要是JSON的通用性及JSON的schemaless的特性。 

  二进制的JSON,JSON文档的二进制编码存储格式

  BSON有JSON没有的Date和BinData

  MongoDB中document以BSON形式存放

> db.meeting.insert({meeting:“M1 June",Date:"2018-01-06"});

MongoDB的优势

   

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐