您好,登錄后才能下訂單哦!
這篇文章主要為大家詳細介紹了MongoDB數(shù)據(jù)類型,文中示例介紹的非常詳細,圖文詳解容易學(xué)習(xí),非常適合初學(xué)者入門,感興趣的小伙伴們可以參考一下。
MongoDB的文檔其實和JSON很類似,與JavaScript的對象概念也很像。但是MongoDB的數(shù)據(jù)類型更加豐富。下面我們一一介紹MongoDB的數(shù)據(jù)類型。
數(shù)據(jù)類型 | 描述 | 舉例 |
null | 表示空值或者未定義的對象 | {“x”:null} |
布爾值 | 真或者假:true或者false | {“x”:true} |
32位整數(shù) | 32位整數(shù)。shell是不支持該類型的,shell中默認會轉(zhuǎn)換成64位浮點數(shù) | |
64位整數(shù) | 64位整數(shù)。shell是不支持該類型的,shell中默認會轉(zhuǎn)換成64位浮點數(shù) | |
64位浮點數(shù) | 64位浮點數(shù)。shell中的數(shù)字就是這一種類型 | {“x”:3.14,“y”:3} |
字符串 | UTF-8字符串 | {“foo”:“bar”} |
符號 | shell不支持,shell會將數(shù)據(jù)庫中的符號類型的數(shù)據(jù)自動轉(zhuǎn)換成字符串 | |
對象id | 文檔的12字節(jié)的唯一id | {“id”: ObjectId()} |
日期 | 從標(biāo)準(zhǔn)紀(jì)元開始的毫秒數(shù) | {“date”:new Date()} |
正則表達式 | 文檔中可以包含正則表達式,遵循JavaScript的語法 | {“foo”:/foobar/i} |
代碼 | 文檔中可以包含JavaScript代碼 | {“x”:function() {}} |
二進制數(shù)據(jù) | 任意字節(jié)的二進制串組成,shell不支持 | |
最大值 | 表示可能的最大值,shell不支持 | |
最小值 | 表示可能的最小值,shell不支持 | |
未定義 | undefined | {“x”:undefined} |
數(shù)組 | 值的集合或者列表 | {“arr”: [“a”,“b”]} |
內(nèi)嵌文檔 | 文檔可以作為文檔中某個key的value | {“x”:{“foo”:“bar”}} |
上面的大部分類型都是顯而易見的,但是有必要詳細解釋一下對象id類型。我們上面說了,對象id類型是一個12字節(jié)的唯一id。每個字節(jié)2位16進制數(shù),因此整個id類型是一個24位的字符串。其結(jié)構(gòu)如下表所示:
前面四個字節(jié)代表從標(biāo)準(zhǔn)紀(jì)元開始的時間戳,以秒為單位。
我們之前提到過,如果不在插入的時候手動的添加_id鍵,那么系統(tǒng)會自動添加一個。盡管MongoDB的id類型被設(shè)計成輕量級的,但是這樣還是會不好。畢竟服務(wù)器創(chuàng)建這個還是會有開銷的。因此,這個工作一般會放到客戶端來做。
參考書籍
《MongoDB:The definitive guide》
以上就是MongoDB數(shù)據(jù)類型的詳細介紹,內(nèi)容較為全面,而且我也相信有相當(dāng)?shù)囊恍┕ぞ呖赡苁俏覀內(nèi)粘9ぷ骺赡軙姷交蛴玫降?。通過這篇文章,希望你能收獲更多。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。