zoukankan      html  css  js  c++  java
  • MongoDB的数据类型介绍

      参考MongoDB官网:https://docs.mongodb.com/manual/reference/bson-types/

      MongoDB文档存储是使用BSON类型,BSON(BSON short for Bin­ary JSON, is a bin­ary-en­coded seri­al­iz­a­tion of JSON-like doc­u­ments)是二进制序列化的形式。类如JSON,同样支持内嵌各种类型。

      

    TypeNumberAliasNotes
    Double 1 “double”  
    String 2 “string”  
    Object 3 “object”  
    Array 4 “array”  
    Binary data 5 “binData”  
    Undefined 6 “undefined” Deprecated.
    ObjectId 7 “objectId”  
    Boolean 8 “bool”  
    Date 9 “date”  
    Null 10 “null”  
    Regular Expression 11 “regex”  
    DBPointer 12 “dbPointer” Deprecated.
    JavaScript 13 “javascript”  
    Symbol 14 “symbol” Deprecated.
    JavaScript (with scope) 15 “javascriptWithScope”  
    32-bit integer 16 “int”  
    Timestamp 17 “timestamp”  
    64-bit integer 18 “long”  
    Decimal128 19 “decimal” New in version 3.4.
    Min key -1 “minKey”  
    Max key 127 “maxKey”

      重点介绍几个类型,

      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日)。 

        

  • 相关阅读:
    hdu 5387 Clock (模拟)
    CodeForces 300B Coach (并查集)
    hdu 3342 Legal or Not(拓扑排序)
    hdu 3853 LOOPS(概率DP)
    hdu 3076 ssworld VS DDD(概率dp)
    csu 1120 病毒(LICS 最长公共上升子序列)
    csu 1110 RMQ with Shifts (线段树单点更新)
    poj 1458 Common Subsequence(最大公共子序列)
    poj 2456 Aggressive cows (二分)
    HDU 1869 六度分离(floyd)
  • 原文地址:https://www.cnblogs.com/firstForEver/p/6843605.html
Copyright © 2011-2022 走看看