美文网首页
第一章 NoSQL和MongoDB简介

第一章 NoSQL和MongoDB简介

作者: 蚂蚁闲游 | 来源:发表于2017-10-03 06:55 被阅读0次

问题

MongoDB如何组织数据?

MongoDB支持哪些数据类型?

什么情况下该范式化数据,什么情况下该反范式化;

如何规划数据模型;

固定集合(capped collection)是如何工作的;

什么情况下该使用索引,分片和复制;

如何确定数据的生命周期;

NoSQL的一个缺点是, 大多数解决方案在ACID(原子性、一致性、隔离性和持久性)方面都无法与广泛接受的RDBMS系统媲美

理解MongoDB

  • 在MongoDB中,数据对象被存储为集合中的文档,而不是传统关系型数据库的行和列。文档是以二进制JSON(BSON)对象的方式存储的;
  • MongoDB因为速度快、可扩展性强、易于实现,为需要存储用户评论、博客和其他内容的网站提供了极佳的后端存储解决方案

MongoDB 成为最受欢迎NoSQL数据库的其他一些原因:

  • 面向文档, 数据在数据库中格式与服务器端和前端的格式非常接近, 避免了将数据的行与对象的间的转换;
  • 高性能;
  • 高可用性;
  • 高可扩展性;
  • 对SQL注入攻击免疫;

MongoDB 中_ID(ObjectID)。 是独一无二的ID, 这种ID由下列几部分组成:

  • 从新纪元开始的秒数(4字节)
  • 3字节的机器标识符
  • 2字节的进程ID
  • 3字节的计数器(该计数据的起始值是随机的)
    MongoDB文档最大不能超过16M, 就是避免占用太多的RAM

MongoDB数据类型及其ID号

类型 ID编号
Double(双精度浮点数) 1
String(字符串) 2
Object(对象) 3
Array(数组) 4
Binary Data(二进制数据) 5
ObjectID(对象ID) 7
Boolean(布尔值) 8
Date(日期) 9
Null(空) 10
Regular Expression(正则表达式) 11
JavaScript 13
Symbol(符号) 14
JavaScript(带作用域) 15
32-bit integer(32位整数) 16
Timestamp(时间戳) 17
64-bit integer(64位整数) 18
Min key 255
Max key 127

暂不清楚这种ID分配其目的是什么?

使用MongoDB支持的各种数据类型时, 需要注意的另一点是它们的排序sort,比较不同BSON类型的值时,MongoDB使用下面的排序sort;

编号 类型
1 Min Key(内部使用的类型)
2 Null
3 数字(32位整数、64位整数和双精度浮点数)
4 符号和字符串
5 对象
6 数组
7 二进制数据
8 对象ID
9 布尔值
10 日期和时间戳
11 regular expression 正则表达式
12 Max key 内部使用的类型

什么时数据范式化

  • 是指通过组织文档和集合以最大限度地减少冗余和依赖;
  • 使用嵌入式文档对数据进行反范式化;

主对象和子对象之间为一对一关系或者子对象很少且不会频繁更新;

相关文章

网友评论

      本文标题:第一章 NoSQL和MongoDB简介

      本文链接:https://www.haomeiwen.com/subject/mbuoextx.html