Mongo數據格式及數據類型

JSON

JSON是一種簡單的數據表示方式,它易於理解、易於解析、易於記憶。但從另一方面來說,因爲只有null、布爾、數字、字符串、數組和對象這幾種數據類型,所以JSON有一定侷限性。例如,JSON沒有日期類型,JSON只有一種數字類型,無法區分浮點數和整數,更別說區分32爲和64位數字了。再者,JSON無法表示其他一些通用類型,如正則表達式或函數。

BSON

BSON(Binary Serialized Document Format)是一種類JSON的二進制形式的存儲格式,簡稱Binary JSON。它和JSON一樣,支持內嵌的文檔對象和數組對象,但是BSON有JSON沒有的一些數據類型,如Date和BinData類型。它支持下面數據類型。每個數據類型對應一個數字,在MongoDB中可以使用$type操作符查看相應的文檔的BSON類型

類型 對應數字 別名 說明
Double1 1 double
String 2 string
Object 3 object
Array 4 array
Binary data 5 binData
Undefined 6 undefined 棄用
ObjectId 7 objectId
Boolean 8 “bool”
Date 9 “date”
Null 10 “null”
Regular Expression 11 “regex”
DBPointer 12 “dbPointer”
JavaScript 13 “javascript”
Symbol 14 “symbol”
JavaScript(with scope) 15 “javascriptWithScope”
32-bit integer 16 “int”
Timestamp 17 “timestamp”
64-bit integer 18 “long”
Min key -1 “minKey”
Max key 127 “maxKey”

**

基本數據類型

**

null:用於表示空值或者不存在的字段,{“x”:null}

布爾型:布爾類型有兩個值true和false,{“x”:true}

數值:shell默認使用64爲浮點型數值。{“x”:3.14}或{“x”:3}。對於整型值,可以使用NumberInt(4字節符號整數)或NumberLong(8字節符號整數),{“x”:NumberInt(“3”)}{“x”:NumberLong(“3”)}

字符串:UTF-8字符串都可以表示爲字符串類型的數據,{“x”:“呵呵”}

日期:日期被存儲爲自新紀元依賴經過的毫秒數,不存儲時區,{“x”:new Date()}

正則表達式:查詢時,使用正則表達式作爲限定條件,語法與JavaScript的正則表達式相同,{“x”:/[abc]/}

數組:數據列表或數據集可以表示爲數組,{“x”: [“a“,“b”,”c”]}

內嵌文檔:文檔可以嵌套其他文檔,被嵌套的文檔作爲值來處理,{“x”:{“y”:3 }}

對象Id:對象id是一個12字節的字符串,是文檔的唯一標識,{“x”: objectId() }

二進制數據:二進制數據是一個任意字節的字符串。它不能直接在shell中使用。如果要將非utf-字符保存到數據庫中,二進制數據是唯一的方式。

代碼:查詢和文檔中可以包括任何JavaScript代碼,{“x”:function(){//}}

BSON 與 MongoDB 的關係

BSON是用於存儲MongoDB【文檔】的一種文檔格式。驅動程序在使用【文檔】進行插入、查詢或其他操作時。會先將【文檔】編碼成BSON格式,然後發送給服務器。同樣地,服務器將文檔返回客戶端時,也是已BSON格式進行的。驅動程序先對此BSON進行解碼然後再傳送給客戶端。因此,BSON與MongoDB的關係爲:MongoDB利用BSON格式存儲數據和傳輸數據

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章