您好,登錄后才能下訂單哦!
MongoDB數據類型有哪些,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
數字
shell默認使用64位浮點型數值,如下:
db.sang_collec.insert({x:3.1415926}) db.sang_collec.insert({x:3})
對于整型值,我們可以使用NumberInt或者NumberLong表示,如下:
db.sang_collec.insert({x:NumberInt(10)}) db.sang_collec.insert({x:NumberLong(12)})
字符串也可以直接存儲,如下:
db.sang_collec.insert({x:"hello MongoDB!"})
正則表達式主要用在查詢里邊,查詢時我們可以使用正則表達式,語法和JavaScript中正則表達式的語法相同,比如查詢所有key為x,value以hello開始的文檔且不區分大小寫:
db.sang_collec.find({x:/^(hello)(.[a-zA-Z0-9])+/i})
數組一樣也是被支持的,如下:
db.sang_collec.insert({x:[1,2,3,4,new Date()]})
數組中的數據類型可以是多種多樣的。
MongoDB支持Date類型的數據,可以直接new一個Date對象,如下:
db.sang_collec.insert({x:new Date()})
一個文檔也可以作為另一個文檔的value,這個其實很好理解,如下:
db.sang_collect.insert({name:"三國演義",author:{name:"羅貫中",age:99}});
書有一個屬性是作者,作者又有name,年齡等屬性。
我們在前面提到過,我們每次插入一條數據系統都會自動幫我們插入一個_id
鍵,這個鍵的值不可以重復,它可以是任何類型的,我們也可以手動的插入,默認情況下它的數據類型是ObjectId,由于MongoDB在設計之初就是用作分布式數據庫,所以使用ObjectId可以避免不同數據庫中_id
的重復(如果使用自增的方式在分布式系統中就會出現重復的_id
的值),這個特點有點類似于Git中的版本號和Svn中版本號的區別。
ObjectId使用12字節的存儲空間,每個字節可以存儲兩個十六進制數字,所以一共可以存儲24個十六進制數字組成的字符串,在這24個字符串中,前8位表示時間戳,接下來6位是一個機器碼,接下來4位表示進程id,最后6位表示計數器。
MongoDB中也可以存儲二進制數據,不過這種情況并不多,二進制數據的存儲不能在shell中操作,我們在后面的代碼中會介紹這種存儲方式。
文檔中也可以包括JavaScript代碼,如下:
db.sang_collect.insert({x:function f1(a,b){return a+b;}});
看完上述內容,你們掌握MongoDB數據類型有哪些的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。