美文网首页
第一章 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