MongoDB 体系结构

1. NoSQL 和 MongoDB

NoSQL = Not Only SQL,支持类似 SQL 的功能, 与 Relational Database 相辅相成。其性能较高,不使用 SQL 意味着没有结构化的存储要求(SQL 为结构化的查询语句),没有约束之后架构更加灵活。

NoSQL 数据库四大家族

  • 列存储 Hbase
  • 键值(Key-Value)存储 Redis
  • 图像存储 Neo4j
  • 文档存储 MongoDB

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

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富、最像关系数据库的。在高负载的情况下,通过添加更多的节点,可以保证服务器性能。

2. MongoDB 体系结构

3. MongoDB 和RDBMS(关系型数据库)对比

RDBMSMongoDB
database(数据库)database(数据库)
table(表)collection( 集合)
row( 行)document( BSON 文档)
column (列)field (字段)
index(唯一索引、主键索引)index (支持地理位置索引、全文索引 、哈希索引)
join (主外键关联)embedded Document (嵌套文档)
primary key(指定1至N个列做主键)primary key (指定_id field做为主键)

4. 什么是 BSON

BSON 是一种类 json 的一种二进制形式的存储格式,简称 Binary JSON,它和 JSON 一样,支持内嵌的文档对象和数组对象,但是 BSONJSON 没有的一些数据类型,如 DateBinary Data 类型。BSON 可以做为网络数据交换的一种存储形式,是一种 schema-less 的存储形式,它的优点是灵活性高,但它的缺点是空间利用率不是很理想。

{key:value,key2:value2} 这是一个 BSON 的例子,其中 key 是字符串类型,后面的 value 值,它的类型一般是字符串, double , Array ,ISODate等类型。

BSON有三个特点

  • 轻量性
  • 可遍历性
  • 高效性

5. BSON 在 MongoDB 中的使用

MongoDB 使用了 BSON 这种结构来存储数据和网络数据交换。把这种格式转化成一文档这个概念(Document),这里的一个 Document 也可以理解成关系数据库中的一条记录(Record),只是这里的 Document 的变化更丰富一些,如 Document 可以嵌套。

MongoDBDocument 中可以出现的数据类型

数据类型说明解释说明Document举例
String字符串UTF-8 编码的字符串才是 合法的。{key:“cba”}
Integer整型数值根据你所采用的服务器, 可分为 32 位或 64 位。{key:1}
Boolean布尔值用于存储布尔值(真/ 假)。{key:true}
Double双精度浮点值用于存储浮点值{key:3.14}
ObjectId对象ID用于创建文档的ID{_id:new ObjectId()}
Array数组用于将数组或列表或多个 值存储为一个键{arr:[“a”,“b”]}
Timestamp时间戳从开始纪元开始的毫秒数{ ts: new Timestamp() }
Object内嵌文档文档可以作为文档中某个 key的value{o:{foo:“bar”}}
Null空值表示空值或者未定义的对 象{key:null}
Date或者 ISODate格林尼治时间日期时间,用Unix日期格 式来存储当前日期或时 间。{birth:new Date()}
Code代码可以包含JS代码{x:function(){}}
File文件1、二进制转码(Base64)后存储 ( <16M )
2、GridFS(>16M)
GridFS 用两个集合来存储一个文件:fs.files与 fs.chunks 真正存储需要使用mongofiles -d gridfs put song.mp3
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小松の博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值