您好,登錄后才能下訂單哦!
在NoSQL文檔型存儲數據庫中MongoDB的作用以及用法是怎樣的,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
MongoDB 是一個基于分布式文件存儲的數據庫。由 C++ 語言編寫。旨在為 WEB 應用提供可擴展的高性能數據存儲解決方案。MongoDB 是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。
NoSQL 數據庫數量很多,但可以劃分為如下圖所示的 4 大類:
鍵值存儲數據庫:數據庫代表——Redis;
列存儲數據庫:數據庫代表——HBase;
文檔型存儲數據庫:數據庫代表——MongoDB;
圖形數據庫:數據庫代表——Neo4J。
關系型數據庫:在我們所用過的sqlserver、mysql等,這些都是關系型數據庫,并且關系型數據庫是遵循ACID原則的,嚴格的一致性。
非關系型數據庫:也叫作NoSQL,用與超大規模數據的存儲,這些類型的數據存儲不需要固定的模式,無需多余的操作就可以橫向擴展。MongoDB 是由C++語言編寫的,是一個基于分布式文件存儲的開源數據庫系統。在高負載的情況下,添加更多的節點,可以保證服務器性能。MongoDB 旨在為WEB應用提供可擴展的高性能數據存儲解決方案。MongoDB 將數據存儲為一個文檔,數據結構由鍵值(key=>value)對組成。MongoDB 文檔類似于 JSON 對象。字段值可以包含其他文檔,數組及文檔數組。
MongoDB是為互聯網而生的數據庫,是文檔數據庫。
1.1 、優點:
Schema-less,不需要預先定義表結構,同一個“表”中可以保存多個格式的數據;
數據支持嵌套,數據以json格式存儲;
允許使用JavaScript寫服務端腳本,類似于存儲過程;
支持Map/Reduce;
MongoDB支持地理位置索引,可以直接用于位置距離計算和查詢,實現“附近的人”、
“滴滴打車接單”等很容易;
1.2 、缺點:
Mongodb沒有“數據一致性檢查”、“事務”等,不適合存儲對數據事務要求高(比如金融)的數據;只適合放非關鍵性數據(比如日志或者緩存)。
關聯查詢很弱,不適合做報表查詢
1.3、Mongodb適合場景
1)、應用在應用服務器的日志記錄。
2)、主要用來存儲一些監控數據,No schema 對開發人員來說,真的很方便,增加字段不用改表結構,而且學習成本極低。
3)、使用MongoDB做了O2O快遞應用,·將送快遞騎手、快遞商家的信息(包含位置信息)存儲在 MongoDB,然后通過 MongoDB 的地理位置查詢,這樣很方便的實現了查找附近的商家、騎手等功能,使得快遞騎手能就近接單。
1.4、不適合MongoDB的場景
如果業務中存在大量復雜的事務邏輯操作,則不要用MongoDB數據庫。
在mongodb中對應關系型數據庫中‘表’的概念為‘集合’,表中的數據結構是一致,mongodb以json格式存儲,集合數據是靈活的,mongodb的同一集合collection中可存不同結構的數據。但是實際工作中,阿笨不建議大家將不同類對象存入同一個MongoDB的Collection。
NoSQL文檔型存儲數據庫—MongoDB
通過本次分享課程后大家記住一點千萬不要把MongoDB NOSQL數據庫像RDBMS關系型數據庫一樣去應用!建議把不是頻繁修改的數據放在MongoDB中。Mongodb是永遠取代不了我們日常用到的sqlserver,mysql,oracle等數據庫的。兩者只能相互補充,取長補短的作用。
歸納:NoSQL 適用于數據模型較簡單、無高度的數據一致性需求,但要求高性能和靈活性的情況。
記住一點:如果你用著用著你突然發現把mongodb當成RDMS關系型數據庫來使用了,那就是你的不對了!mongodb只永遠只適合存放一些固化的非結構化的數據!
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。