標籤:bool utc isod 年月日 oplog 返回 元素 article 1.2
下表為MongoDB中常用的幾種資料類型。
| 資料類型 |
描述 |
| 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。 (每個文檔都有) |
| 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.str5a1919e63df83ce79df8b38f
字串
BSON 字串都是 UTF-8 編碼。
時間戳記
BSON 有一個特殊的時間戳記類型用於 MongoDB 內部使用,與普通的 日期 類型不相關。 時間戳記值是一個 64 位元的值。其中:
- 前32位是一個 time_t 值(與Unix新紀元相差的秒數)
- 後32位是在某秒中操作的一個遞增的
序數
在單個 mongod 執行個體中,時間戳記值通常是唯一的。
在複製集中, oplog 有一個 ts 欄位。這個欄位中的值使用BSON時間戳記表示了操作時間。
BSON 時間戳記類型主要用於 MongoDB 內部使用。在大多數情況下的應用開發中,你可以使用 BSON 日期類型。
日期
表示當前距離 Unix新紀元(1970年1月1日)的毫秒數。日期類型是有符號的, 負數表示 1970 年之前的日期。
> var mydate1 = new Date() //格林尼治時間> mydate1ISODate("2018-03-04T14:58:51.233Z")> typeof mydate1object> var mydate2 = ISODate() //格林尼治時間> mydate2ISODate("2018-03-04T15:00:45.479Z")> typeof mydate2object
這樣建立的時間是日期類型,可以使用 JS 中的 Date 類型的方法。
返回一個時間類型的字串:
> var mydate1str = mydate1.toString()> mydate1strSun Mar 04 2018 14:58:51 GMT+0000 (UTC) > typeof mydate1strstring
或者
> Date()Sun Mar 04 2018 15:02:59 GMT+0000 (UTC)
mongoDB支援的資料類型