在NOSQL文檔型存儲(chǔ)數(shù)據(jù)庫中MongoDB的作用以及用法是怎樣的,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
目前創(chuàng)新互聯(lián)公司已為成百上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、高臺(tái)網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
MongoDB 是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫。由 C++ 語言編寫。旨在為 WEB 應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。MongoDB 是一個(gè)介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。
NoSQL 數(shù)據(jù)庫數(shù)量很多,但可以劃分為如下圖所示的 4 大類:
鍵值存儲(chǔ)數(shù)據(jù)庫:數(shù)據(jù)庫代表——redis;
列存儲(chǔ)數(shù)據(jù)庫:數(shù)據(jù)庫代表——HBase;
文檔型存儲(chǔ)數(shù)據(jù)庫:數(shù)據(jù)庫代表——MongoDB;
圖形數(shù)據(jù)庫:數(shù)據(jù)庫代表——Neo4J。
關(guān)系型數(shù)據(jù)庫:在我們所用過的sqlserver、MySQL等,這些都是關(guān)系型數(shù)據(jù)庫,并且關(guān)系型數(shù)據(jù)庫是遵循ACID原則的,嚴(yán)格的一致性。
非關(guān)系型數(shù)據(jù)庫:也叫作NoSQL,用與超大規(guī)模數(shù)據(jù)的存儲(chǔ),這些類型的數(shù)據(jù)存儲(chǔ)不需要固定的模式,無需多余的操作就可以橫向擴(kuò)展。MongoDB 是由C++語言編寫的,是一個(gè)基于分布式文件存儲(chǔ)的開源數(shù)據(jù)庫系統(tǒng)。在高負(fù)載的情況下,添加更多的節(jié)點(diǎn),可以保證服務(wù)器性能。MongoDB 旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。MongoDB 將數(shù)據(jù)存儲(chǔ)為一個(gè)文檔,數(shù)據(jù)結(jié)構(gòu)由鍵值(key=>value)對(duì)組成。MongoDB 文檔類似于 JSON 對(duì)象。字段值可以包含其他文檔,數(shù)組及文檔數(shù)組。
MongoDB是為互聯(lián)網(wǎng)而生的數(shù)據(jù)庫,是文檔數(shù)據(jù)庫。
1.1 、優(yōu)點(diǎn):
Schema-less,不需要預(yù)先定義表結(jié)構(gòu),同一個(gè)“表”中可以保存多個(gè)格式的數(shù)據(jù);
數(shù)據(jù)支持嵌套,數(shù)據(jù)以json格式存儲(chǔ);
允許使用JavaScript寫服務(wù)端腳本,類似于存儲(chǔ)過程;
支持Map/Reduce;
MongoDB支持地理位置索引,可以直接用于位置距離計(jì)算和查詢,實(shí)現(xiàn)“附近的人”、
“滴滴打車接單”等很容易;
1.2 、缺點(diǎn):
Mongodb沒有“數(shù)據(jù)一致性檢查”、“事務(wù)”等,不適合存儲(chǔ)對(duì)數(shù)據(jù)事務(wù)要求高(比如金融)的數(shù)據(jù);只適合放非關(guān)鍵性數(shù)據(jù)(比如日志或者緩存)。
關(guān)聯(lián)查詢很弱,不適合做報(bào)表查詢
1.3、Mongodb適合場(chǎng)景
1)、應(yīng)用在應(yīng)用服務(wù)器的日志記錄。
2)、主要用來存儲(chǔ)一些監(jiān)控?cái)?shù)據(jù),No schema 對(duì)開發(fā)人員來說,真的很方便,增加字段不用改表結(jié)構(gòu),而且學(xué)習(xí)成本極低。
3)、使用MongoDB做了O2O快遞應(yīng)用,·將送快遞騎手、快遞商家的信息(包含位置信息)存儲(chǔ)在 MongoDB,然后通過 MongoDB 的地理位置查詢,這樣很方便的實(shí)現(xiàn)了查找附近的商家、騎手等功能,使得快遞騎手能就近接單。
1.4、不適合MongoDB的場(chǎng)景
如果業(yè)務(wù)中存在大量復(fù)雜的事務(wù)邏輯操作,則不要用MongoDB數(shù)據(jù)庫。
在mongodb中對(duì)應(yīng)關(guān)系型數(shù)據(jù)庫中‘表’的概念為‘集合’,表中的數(shù)據(jù)結(jié)構(gòu)是一致,mongodb以json格式存儲(chǔ),集合數(shù)據(jù)是靈活的,mongodb的同一集合collection中可存不同結(jié)構(gòu)的數(shù)據(jù)。但是實(shí)際工作中,阿笨不建議大家將不同類對(duì)象存入同一個(gè)MongoDB的Collection。
NoSQL文檔型存儲(chǔ)數(shù)據(jù)庫—MongoDB
通過本次分享課程后大家記住一點(diǎn)千萬不要把MongoDB NOSQL數(shù)據(jù)庫像RDBMS關(guān)系型數(shù)據(jù)庫一樣去應(yīng)用!建議把不是頻繁修改的數(shù)據(jù)放在MongoDB中。Mongodb是永遠(yuǎn)取代不了我們?nèi)粘S玫降膕qlserver,mysql,oracle等數(shù)據(jù)庫的。兩者只能相互補(bǔ)充,取長補(bǔ)短的作用。
歸納:NoSQL 適用于數(shù)據(jù)模型較簡(jiǎn)單、無高度的數(shù)據(jù)一致性需求,但要求高性能和靈活性的情況。
記住一點(diǎn):如果你用著用著你突然發(fā)現(xiàn)把mongodb當(dāng)成RDMS關(guān)系型數(shù)據(jù)庫來使用了,那就是你的不對(duì)了!mongodb只永遠(yuǎn)只適合存放一些固化的非結(jié)構(gòu)化的數(shù)據(jù)!
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。
當(dāng)前名稱:在NoSQL文檔型存儲(chǔ)數(shù)據(jù)庫中MongoDB的作用以及用法是怎樣的
URL地址:http://aaarwkj.com/article32/jjpppc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、小程序開發(fā)、ChatGPT、微信公眾號(hào)、Google、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)