美文网首页
SpringBoot集成MongoDB

SpringBoot集成MongoDB

作者: lomo萌神 | 来源:发表于2019-11-20 16:54 被阅读0次

    https://www.jianshu.com/p/ae6615d1e2ce

    image.png
    image.png

    基础概念

    MongoDB与SQL的结构对比详解

    image.png
    1. keydocument中的键的名称,类似关系型数据库中表的,但是这个key不像关系数据库那样子被限定;
    2. document是MongoDB中数据的基本单位,类似关系型数据库表的,但是比行要复杂多;
    3. collection就是一组document,类似关系型数据库的一个
    4. db就是一组collection,类似关系型数据库的库,单个实例可以支持多个库,每一个db都有自己的集合和权限;
    5. 每个document都有一个特殊的键_id ,这个键值是唯一的,相当于关系型数据库中的表的主键;
    6. MongoDB存储的数据库是以BSON的格式的,BSON是一种二进制的json数据。

    数据类型

    Object ID :文档的id
    String: 字符串,最常用,必须是utf-8
    Boolean:布尔值,true 或者false
    Integer:整数
    Double:浮点数
    Arrays:数组或者列表,多个值存储到一个键
    Object:用于嵌入文档,即一个值为一个文档
    Null:存储null值
    Timestamp:时间戳
    Date:存储当前日期或时间unix时间格式

    重点介绍几个类型,
    ObjectId类型:这是MongoDB生成的类似关系型DB表主键的唯一key,生成快速。具体由12个字节组成:
      前4个字节是unix秒,3个字节的机器标识符(为了分布式下的主键唯一),2个字节的进程id,3个字节的计数器数字
    a 4-byte value representing the seconds since the Unix epoch,
    a 3-byte machine identifier,
    a 2-byte process id, and
    a 3-byte counter, starting with a random value.
    MongoDB的设计之初就是要做分布式数据库。从ObjectId唯一主键的生成上,值得分布式系统设计人员参考。
      3个字节的机器标识符,表示MongoDB实例所在机器的不同;2个字节的进程id,表示相同机器的不同MongoDB实例。再加上时间戳和随机数(3个字节随机数,同一秒上,理论上可以有2^24次个插入),很大程度上保证了ObjectId的唯一性。
    String类型:BSON字符串都是UTF-8编码。
    Timestamps类型:BSON具有内部MongoDB使用的特殊时间戳类型,并且不与常规Date类型相关联。 时间戳值是64位值,其中:
    第一个32bit是unix时间戳秒;
    第二个32bit是当前秒的递增操作数。
    可以保证一个mongod实例下,timestamps总是唯一的。
    Date类型:BSON Date是一个64bit有符号整数,表示自Unix纪元以来的毫秒数(1970年1月1日)。

    相关文章

      网友评论

          本文标题:SpringBoot集成MongoDB

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