1. MongoDB起步 - Mongo系列

使用MongoDB

在Windows上使用Mongodb是非常反人類的,好在docker能夠快速的搭建一個(gè)mongo的環(huán)境。

docker pull mongo

在執(zhí)行上述命令后,docker會(huì)拉取mongodb的docker鏡像,在complete之后即可啟動(dòng)docker。

docker版本的mongo啟動(dòng)分為兩步,和linux啟動(dòng)一樣。

//啟動(dòng)服務(wù)
docker run -d --name mongod -p 27107:27107 -v /data/db/mongo:/data/db mongo
//啟動(dòng)cli 并連接到mongod
docker run -it --name mongo-cli --rm --link mongod:mongod mongo mongo --host mongod
mongo連接

此時(shí)就已經(jīng)連接上mongod開(kāi)始操作了~

基于shell的CRUD操作

啟動(dòng)mongo shell的方式如上節(jié)中docker啟動(dòng)的方式即可,如果是在原生的linux上安裝的mongo,可以參考菜鳥(niǎo)教程 mongodb連接。

mongoDB對(duì)象ID格式

mongoDB的對(duì)象Id能夠保證在全局唯一,所以能夠安全的在客戶端為文檔分配ID,不會(huì)出現(xiàn)重復(fù)的情況。

mongodb Id格式

開(kāi)頭4字為標(biāo)準(zhǔn)的Unix時(shí)間戳,編碼了從新紀(jì)元開(kāi)始的描述,接下來(lái)3字節(jié)存儲(chǔ)了機(jī)器ID,隨后2字節(jié)是進(jìn)程ID,最后3字節(jié)是進(jìn)程局部計(jì)數(shù)器,每次生成ID后計(jì)數(shù)器都會(huì)加一。

Gson

對(duì)于MongoDB來(lái)說(shuō),其腳本和存儲(chǔ)格式都像Js和Json一樣,但是在Java驅(qū)動(dòng)中,Mongo提供了一個(gè)Gson的Java對(duì)象來(lái)存儲(chǔ)信息,一直不明白為什么。但是,最近看了Mongo University的MJ101課程,發(fā)現(xiàn)MongoDB自己設(shè)計(jì)并使用Gson的原因在于Json的能力還不夠,對(duì)于二維坐標(biāo)、日期、時(shí)間等類型的數(shù)據(jù)都只能用數(shù)組和字符串來(lái)存儲(chǔ),這樣給數(shù)據(jù)庫(kù)的設(shè)計(jì)帶來(lái)的限制,因此MongoDB自己設(shè)計(jì)了Gson格式,在不改變基礎(chǔ)Json結(jié)構(gòu)的情況下,增加了對(duì)于二維坐標(biāo)、日期、時(shí)間的功能擴(kuò)展,能夠快速的計(jì)算時(shí)間、空間關(guān)系等。

接下來(lái)

Mongo的shell插入和增刪改查事實(shí)上沒(méi)有太多困惑的地方,比Mysql要簡(jiǎn)單的多,MongoDB也提供了超級(jí)好用的GUI客戶端,非常強(qiáng)悍的分析功能和可視化展示,因此下一篇將會(huì)是如何使用Java來(lái)操作Mongo,這才是我們Java程序員真正關(guān)心的操作。

Java的操作會(huì)使用原生的Mongo Driver,因?yàn)榘l(fā)現(xiàn)現(xiàn)在脫離Spring已經(jīng)快要不會(huì)寫(xiě)代碼了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容