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

JSONjavascript

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

BSONjava

    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」  

基本數據類型shell

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()}post

正則表達式:查詢時,使用正則表達式做爲限定條件,語法與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格式存儲數據和傳輸數據

 

來源: http://www.cnblogs.com/Khadron/p/MongoDB_Note_1.html

相關文章
相關標籤/搜索