mongoDB支援的資料類型

來源:互聯網
上載者:User

標籤: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支援的資料類型

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.