mongoDB支持的數據類型

下表爲MongoDB中經常使用的幾種數據類型。express

數據類型 描述
String 字符串。存儲數據經常使用的數據類型。在 MongoDB 中,UTF-8 編碼的字符串纔是合法的。
Integer 整型數值。用於存儲數值。根據你所採用的服務器,可分爲 32 位或 64 位。
Boolean 布爾值。用於存儲布爾值(真/假)。
Double 雙精度浮點值。用於存儲浮點值。
Min/Max keys 將一個值與 BSON(二進制的 JSON)元素的最低值和最高值相對比。
Array 用於將數組或列表或多個值存儲爲一個鍵。
Timestamp 時間戳。記錄文檔修改或添加的具體時間。
Object 用於內嵌文檔。
Null 用於建立空值。
Symbol 符號。該數據類型基本上等同於字符串類型,但不一樣的是,它通常用於採用特殊符號類型的語言。
Date 日期時間。用 UNIX 時間格式來存儲當前日期或時間。你能夠指定本身的日期時間:建立 Date 對象,傳入年月日信息。
Object ID 對象 ID。用於建立文檔的 ID。  (每一個文檔都有)
Binary Data 二進制數據。用於存儲二進制數據。
Code 代碼類型。用於在文檔中存儲 JavaScript 代碼。
Regular expression

 

ObjectId

ObjectId 相似惟一主鍵,能夠很快的去生成和排序,包含 12 bytes,含義是:數組

  • 前 4 個字節表示建立 unix時間戳,格林尼治時間 UTC 時間,比北京時間晚了 8 個小時
  • 接下來的 3 個字節是機器標識碼
  • 緊接的兩個字節由進程 id 組成 PID
  • 最後三個字節是隨機數

MongoDB 中存儲的文檔必須有一個 _id 鍵。這個鍵的值能夠是任何類型的,默認是個 ObjectId 對象服務器

因爲 ObjectId 中保存了建立的時間戳,因此你不須要爲你的文檔保存時間戳字段,你能夠經過 getTimestamp 函數來獲取文檔的建立時間:函數

> var newObject = ObjectId() > newObject.getTimestamp() ISODate("2017-11-25T07:21:10Z")

 

ObjectId 轉爲字符串編碼

> newObject.str 5a1919e63df83ce79df8b38f

 

 

字符串

BSON 字符串都是 UTF-8 編碼。spa

時間戳

BSON 有一個特殊的時間戳類型用於 MongoDB 內部使用,與普通的 日期 類型不相關。 時間戳值是一個 64 位的值。其中:3d

  • 前32位是一個 time_t 值(與Unix新紀元相差的秒數)
  • 後32位是在某秒中操做的一個遞增的序數

在單個 mongod 實例中,時間戳值一般是惟一的。unix

在複製集中, oplog 有一個 ts 字段。這個字段中的值使用BSON時間戳表示了操做時間。code

BSON 時間戳類型主要用於 MongoDB 內部使用。在大多數狀況下的應用開發中,你可使用 BSON 日期類型。對象

日期

表示當前距離 Unix新紀元(1970年1月1日)的毫秒數。日期類型是有符號的, 負數表示 1970 年以前的日期。

> var mydate1 = new Date()     //格林尼治時間
> mydate1 ISODate("2018-03-04T14:58:51.233Z") > typeof mydate1 object
> var mydate2 = ISODate() //格林尼治時間
> mydate2 ISODate("2018-03-04T15:00:45.479Z") > typeof mydate2 object

 

這樣建立的時間是日期類型,可使用 JS 中的 Date 類型的方法。

返回一個時間類型的字符串:

> var mydate1str = mydate1.toString() > mydate1str Sun Mar 04 2018 14:58:51 GMT+0000 (UTC) > typeof mydate1str string

 

或者

> Date() Sun Mar 04 2018 15:02:59 GMT+0000 (UTC)
相關文章
相關標籤/搜索