JSON 類型 有 null 、 布爾 、數字 、 字符串 、數組 和 對象
JSON 缺點 :
1. 沒有 日期類型
2. 只有一個 數字類型 , 沒有 32位數字 64位數字 浮點數 等。
3. 沒有其他常用類型 ,比如 正則表達式 或 函數。
那麼 MongoDB 的 擴展BSON 包含哪些類型:
1. null
表示空值 或 不存在的字段
{"x" : null}
2. 布爾
true 和 false
{"x" : true}
3. 32位整數
shell 中 不支持 , javascript 只支持 64位浮點數 ,所以 32位整數 會被轉換
4. 64位整數
shell 中 不支持,64位整數 可以用一種特殊的內嵌文檔來顯示(以後再說明)。
5. 64位浮點數
{"x" : 3.14}
{"x" : 3 }
上面都是浮點數
6.字符串
支持 UTF-8 字符串集
{"x" : "foobar"}
7.字符 和 符號
shell 中 不支持,shell 會自動轉換成 字符串類型。
8. 對象id
對象id 是12位文檔唯一ID 。
{"x" : ObjectId()}
9. 日期
日期類型存儲的是從標準紀元開始的毫秒數。不存儲時區:
{"x" : new Date()}
10. 正則表達式
採用javascript的正則表達式語法
{"x" : /foobar/i}
11. 代碼
可以包含javascript代碼
{"x" : function() { /* …… */} }
12. 二進制數據
shell 中 不支持,可以由任意字節的串組成。
13. 最大值
shell 中 不支持,一個特殊類型 表示可能的最大值。
14. 最小值
shell 中 不支持,一個特殊類型 表示可能的最小值。
15. 未定義
在 javascript中 null 和 undefined 是不同類型,所以 MongoDB 也支持這個類型。
{"x" : undefined}
16. 數組
值的集合 或 列表 表示成數組
{"x" : ["a", "b" , "c"]}
17. 內嵌文檔
文檔中 包含 別的文檔, 也可以作爲值嵌入到父文檔中 :
{"x" : {"foo" : "bar"}}