MongoDB學習筆記-數據格式及數據類型


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格式存儲數據和傳輸數據


免責聲明!

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



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