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,同樣支持內嵌各種類型。

  

Type Number Alias Notes
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日)。 

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM