關(guān)于MongoDB數(shù)據(jù)庫(kù)核心概念
MongoDB數(shù)據(jù)庫(kù)核心概念
1.NoSQL數(shù)據(jù)庫(kù)介紹
NoSQL意思是不僅僅是sql。
NoSQL指的是菲關(guān)系型數(shù)據(jù)庫(kù),NoSQL有時(shí)稱作Not Only SQL的縮寫,是對(duì)不同于傳統(tǒng)的關(guān)系型數(shù)據(jù)的統(tǒng)稱。
NoSQL就是非關(guān)聯(lián)形式的數(shù)據(jù)庫(kù),數(shù)據(jù)存儲(chǔ)是key value形式。
NoSQL類型的數(shù)據(jù)存儲(chǔ)不需要固定的模式,無(wú)需多余操作就可以橫向擴(kuò)展。
2.MongoDB數(shù)據(jù)庫(kù)介紹
MongoDB由C++語(yǔ)言編寫,是一個(gè)基于分布式文件存儲(chǔ)的開源數(shù)據(jù)庫(kù)系統(tǒng),是專為可擴(kuò)展性、高性能和高可用性設(shè)計(jì)的數(shù)據(jù)庫(kù),是非關(guān)系型數(shù)據(jù)庫(kù)中功能最豐富,最像關(guān)系型數(shù)據(jù)庫(kù),MongoDB的數(shù)據(jù)結(jié)構(gòu)是json和bjson格式。
MongoDB是可以應(yīng)用于各種規(guī)模的企業(yè),各個(gè)行業(yè)以及各類應(yīng)用程序的開源數(shù)據(jù)庫(kù),作為一個(gè)適用于敏捷開發(fā)的數(shù)據(jù)庫(kù),MongoDB的數(shù)據(jù)模式可以隨著應(yīng)用程序的發(fā)展靈活的更新。
隨著應(yīng)用程序的更新,數(shù)據(jù)庫(kù)某張表可能需要增加一個(gè)或多個(gè)字段,而mysql這種關(guān)系型數(shù)據(jù)庫(kù)需要修改表結(jié)構(gòu),并且在更新成千上萬(wàn)條數(shù)據(jù),這個(gè)過(guò)程可能會(huì)導(dǎo)致數(shù)據(jù)庫(kù)死鎖,這種更新字段放到了非關(guān)系型數(shù)據(jù)庫(kù)mongodb中,就會(huì)變得非常簡(jiǎn)單,只需要添加新字段后,新數(shù)據(jù)進(jìn)來(lái)時(shí)應(yīng)用即可,舊數(shù)據(jù)不會(huì)有變動(dòng),大大減少了數(shù)據(jù)庫(kù)的壓力。
MongoDB是一種叫做BSON(二進(jìn)制JSON)的存儲(chǔ)形式作為數(shù)據(jù)存儲(chǔ)。
3.MongoDB支持的數(shù)據(jù)格式
3.1.JSON格式的數(shù)據(jù)類型
JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,json采用完全獨(dú)立于語(yǔ)言的文本格式,但是也使用了類似于C語(yǔ)言家族的習(xí)慣,這些特性使json成為理想的數(shù)據(jù)交換語(yǔ)言,易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成。
MongoDB使用json文檔存儲(chǔ)記錄。
json格式:
{
"id": "f274ef35-05a2-40c6-9b84-ff1e97702300",
"version": "7.6.2",
"hostname": "nginx-6b949875bc-hrzrp",
"ephemeral_id": "1025c85b-df07-4c4b-98d4-f5593293ef0e",
"type": "filebeat"
}json格式解析網(wǎng)站:https://www.bejson.com/
![[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-lMJ0cFeY-1638239458838)(.\mongodb-筆記圖片存放\image-20210213095657806.png)]](http://img.jbzj.com/file_images/article/202304/2023041211062527.jpg)
3.2.BSON格式
BSON是一種類JSON的二進(jìn)制形式的存儲(chǔ)格式,簡(jiǎn)稱Binary JSON,它和json一樣,支持內(nèi)嵌的文檔對(duì)象和數(shù)組對(duì)象,但是BSON有JSON沒(méi)有的一些數(shù)據(jù)類型,比如Date和BinData類型。
BSON的優(yōu)點(diǎn)是靈活性高,但它的缺點(diǎn)就是空間利用率不是很理想。
BSON的特點(diǎn):輕量性、可遍歷性、高效性。
4.MongoDB數(shù)據(jù)庫(kù)的特性
高性能
- MongoDB提供高性能的數(shù)據(jù)持久化,尤其是支持嵌入式數(shù)據(jù)模型減少數(shù)據(jù)庫(kù)系統(tǒng)上的I/O操作。
- MySQL需要查詢10張表,MongoDB一張表就可以搞定。
- 豐富的語(yǔ)言查詢,MongoDB支持豐富的查詢語(yǔ)言來(lái)進(jìn)行讀寫操作以及數(shù)據(jù)匯總。
高可用性
- MongoDB的復(fù)制工具是副本集,提供自動(dòng)故障轉(zhuǎn)移和數(shù)據(jù)冗余。
- MongoDB之前有主從復(fù)制,后來(lái)的主從復(fù)制集群稱之為副本集。
水平可擴(kuò)展性
- MongoDB提供可擴(kuò)展性,作為其核心功能的一部分,分片是將數(shù)據(jù)分散在一組機(jī)器上。
- MongoDB副本集擴(kuò)容也無(wú)需像redis需要遷移槽位,MongoDB可以直接擴(kuò)容
支持多種存儲(chǔ)引擎
- WiredTiger存儲(chǔ)引擎、MMAPv1存儲(chǔ)引擎和InMemory引擎。
5.MongoDB程序
MOngoDB Derives:客戶端程序
MongoDB Stitch:API服務(wù)
MongoDB Atlas:云上部署MongoDB
MongoDB Cloud Manager:管理MongoDB的軟件包
MongoDB Charts:可視化圖表
6.MongoDB應(yīng)用場(chǎng)景
游戲場(chǎng)景
- 使用 MongoDB 存儲(chǔ)游戲用戶信息,用戶的裝備、積分等直接以內(nèi)嵌文檔的形式存儲(chǔ),方便查詢、更新。
物流場(chǎng)景
- 使用 MongoDB 存儲(chǔ)訂單信息,訂單狀態(tài)在運(yùn)送過(guò)程中會(huì)不斷更新,以 MongoDB 內(nèi)嵌數(shù)組的形式來(lái)存儲(chǔ),一次查詢就能將訂單所有的變更讀取出來(lái)。
社交場(chǎng)景
- 使用 MongoDB 存儲(chǔ)存儲(chǔ)用戶信息,以及用戶發(fā)表的朋友圈信息,通過(guò)地理位置索引實(shí)現(xiàn)附近的人、地點(diǎn)等功能。
物聯(lián)網(wǎng)場(chǎng)景
- 使用 MongoDB 存儲(chǔ)所有接入的智能設(shè)備信息,以及設(shè)備匯報(bào)的日志信息,并對(duì)這些信息進(jìn)行多維度的分析。
視頻直播
- 使用 MongoDB 存儲(chǔ)用戶信息、禮物信息等,用戶評(píng)論。
電商場(chǎng)景
- 商城上衣和褲子兩種商品,除了有共同屬性,如產(chǎn)地、價(jià)格、材質(zhì)、顏色等外,還有各自有不同的屬性集,如上衣的獨(dú)有屬性是肩寬、胸圍、袖長(zhǎng)等,褲子的獨(dú)有屬性是臀圍、腳口和褲長(zhǎng)等。
到此這篇關(guān)于關(guān)于MongoDB數(shù)據(jù)庫(kù)核心概念的文章就介紹到這了,更多相關(guān)MongoDB數(shù)據(jù)庫(kù)概念內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MongoDB 3.4配置文件避免入坑的注意事項(xiàng)
最近在配置mongodb的時(shí)候遇到了一些問(wèn)題,現(xiàn)總結(jié)出來(lái)方便以后需要或同樣遇到該問(wèn)題的朋友們參考,下面這篇文章主要給大家介紹了關(guān)于MongoDB 3.4配置文件時(shí)避免入坑的兩個(gè)注意事項(xiàng),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)下吧。2017-09-09
MongoDB使用$addToSet向數(shù)組中添加元素的操作代碼
使用方法$addToSet, 向數(shù)組中添加不存在的元素,如果元素已經(jīng)存在于目標(biāo)數(shù)組當(dāng)中,則使用$addToSet不會(huì)更新當(dāng)前文檔,本文給大家介紹了MongoDB使用$addToSet向數(shù)組中添加元素的操作代碼,感興趣的小伙伴跟著小編一起來(lái)看看吧2024-06-06
MongoDB數(shù)據(jù)庫(kù)設(shè)置賬號(hào)密碼完整步驟
MongoDB這工具很好用的,頁(yè)面美觀,設(shè)置賬號(hào)密碼也必不可少,下面這篇文章主要給大家介紹了關(guān)于MongoDB數(shù)據(jù)庫(kù)設(shè)置賬號(hào)密碼的完整步驟,文中給出了詳細(xì)的實(shí)例代碼,需要的朋友可以參考下2023-05-05
mongodb字段值自增長(zhǎng)實(shí)現(xiàn)代碼
這篇文章主要介紹了mongodb字段值自增長(zhǎng)實(shí)現(xiàn),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
MongoDB中javascript腳本編程簡(jiǎn)介和入門實(shí)例
作為一個(gè)數(shù)據(jù)庫(kù),MongoDB有一個(gè)很大的優(yōu)勢(shì)——它使用js管理數(shù)據(jù)庫(kù),所以也能夠使用js腳本進(jìn)行復(fù)雜的管理——這種方法非常靈活2014-04-04
MongoDB中MapReduce編程模型使用實(shí)例
作為一個(gè)優(yōu)秀的編程模型,MapReduce在大數(shù)據(jù)處理中有很大的優(yōu)勢(shì),而mongodb也支持這一編程模型,本文通過(guò)簡(jiǎn)單的單詞計(jì)數(shù)示例論述在mongodb中如何使用MapReduce2014-04-04

