MongoDB教程
MongoDB是一個(gè)基于文檔的數(shù)據(jù)庫(kù)。一般來(lái)說(shuō),人們稱(chēng)之為NoSQL,因?yàn)樗皇腔赟QL的數(shù)據(jù)庫(kù),或者我們不必編寫(xiě)SQL查詢(xún)。為了搜索或獲取,我們可以編寫(xiě)一個(gè)正則表達(dá)式查詢(xún)。MongoDB以類(lèi)似JSON的格式(稱(chēng)為BSON)存儲(chǔ)數(shù)據(jù)。它支持索引、負(fù)載平衡和分片。在MongoDB中,有一些集合可以將相似或不同的數(shù)據(jù)存儲(chǔ)到其中。由于它在通過(guò)服務(wù)器端語(yǔ)言從MongoDB獲取數(shù)據(jù)后存儲(chǔ)了類(lèi)似JSON的格式,因此無(wú)需再次將其轉(zhuǎn)換為JSON格式。
為什么我們需要學(xué)習(xí)MongoDB
我們學(xué)習(xí)MongoDB有多種原因
- 首先,我們可以輕松安裝和運(yùn)行我們的系統(tǒng)</李>
- 由于MongoDB沒(méi)有任何模式,我們不必?fù)?dān)心MongoDB的模式,當(dāng)我們根據(jù)插入的字段運(yùn)行代碼時(shí),許多記錄將在MongoDB集合中創(chuàng)建,這也減少了內(nèi)存大小</李>
- 因?yàn)樗鼘?shù)據(jù)保存在BSON(Binay JSON)中,所以向服務(wù)器提供數(shù)據(jù)的速度非常快,因?yàn)榉?wù)器直接獲取所需的數(shù)據(jù),而不是解析數(shù)據(jù),然后將其發(fā)送到客戶(hù)端</李>
- 由于文檔查詢(xún)的支持,它是一個(gè)偉大的動(dòng)態(tài)查詢(xún)</李>
- 我們可以輕松地?cái)U(kuò)展MongoDB</李>
- 我們不必?fù)?dān)心像SQL這樣復(fù)雜的連接查詢(xún)</李>
- 因?yàn)橛辛薔oSQL,我們不必?fù)?dān)心sql注入,所以安全問(wèn)題更少</李>
- 我們可以很容易地在MongoDB中實(shí)現(xiàn)負(fù)載平衡</李>
- 我們可以通過(guò)正則表達(dá)式和字段在MongoDB中進(jìn)行搜索</李>
- 我們可以將MongoDB用作windows服務(wù)</李>
- 運(yùn)行MongoDB不需要VM</李>
- MongoDB中提供了對(duì)切分的支持</李>
注意:分片是存儲(chǔ)數(shù)據(jù)的一種方式。在這種情況下,如果數(shù)據(jù)大小增加,它可以被縮放,在這里縮放發(fā)生水平。簡(jiǎn)單地說(shuō),如果一臺(tái)機(jī)器不能保存數(shù)據(jù),我們可以使用多臺(tái)機(jī)器來(lái)保存數(shù)據(jù)。
MongoDB的應(yīng)用
MongoDB主要用于Web應(yīng)用程序中存儲(chǔ)數(shù)據(jù)。它主要被express JS、NodeJS和AngularJS高度使用,因?yàn)镹ode JS是Javascript,我們知道Javascript更適合JSON,我們知道MongoDB已經(jīng)是JSON了。
范例
讓我向您解釋一個(gè)從MongoDB集合獲取數(shù)據(jù)的簡(jiǎn)短示例。假設(shè)我們的收藏名為“問(wèn)題”。在下面的示例中,我們從一個(gè)名為issues的集合中獲取數(shù)據(jù),并使用pretty()函數(shù)以更好的格式顯示數(shù)據(jù)。
db。問(wèn)題。查找({})。漂亮的
輸出:
{
\\“\\u id\\”:ObjectId(\\“5da83b2f8cd630aadaa38806\\”,
\\“狀態(tài)\\”:“打開(kāi)\\”,
\\“所有者”:“Ravan”,
\\“已創(chuàng)建”:ISODate(\\“2016-08-15T00:00:00Z\\”),
\\“努力”:5,
\\“完成日期”:未定義,
\\“標(biāo)題\\”:“單擊“添加”時(shí)控制臺(tái)出錯(cuò)”
}
{
\\“\\u id\\”:ObjectId(\\“5da83b2f8cd630aadaa38807\\”,
\\“狀態(tài)\\”:“已分配\\”,
\\“所有者”:“埃迪”,
\\“已創(chuàng)建”:ISODate(\\“2016-08-16T00:00:00Z\\”),
\\“努力”:14,
\\“完工日期”:ISODate(\\“2016-08-30T00:00:00Z\\”),
\\“標(biāo)題\\”:“面板上缺少底部邊框”
}
{
\\“_id\\”:ObjectId(\\“5da83dde93c7770c2beb6d57\\”,
\\“所有者”:“Ravan”,
\\“標(biāo)題”:“買(mǎi)些餅干”,
\\“狀態(tài)\\”:“打開(kāi)\\”,
\\“created\\”:ISODate(\\“2019-10-17T10:09:34.294Z\\”),
\\“竣工日期”:ISODate(\\“2019-12-08T18:30:00Z\\”),
\\“努力”:1
}
輸出:
先決條件
因此,要學(xué)習(xí)MongoDB,您不需要了解SQL查詢(xún),您需要對(duì)數(shù)據(jù)和正則表達(dá)式操作有基本的了解。
目標(biāo)受眾
下面給出了兩個(gè)目標(biāo)受眾:
數(shù)據(jù)庫(kù)管理員:數(shù)據(jù)庫(kù)管理員可以處理創(chuàng)建新用戶(hù)、授予這些用戶(hù)一些訪(fǎng)問(wèn)權(quán)限、檢查性能和擴(kuò)展MongoDB。
Web開(kāi)發(fā)者:Web開(kāi)發(fā)者可以存儲(chǔ)從各種來(lái)源獲取的數(shù)據(jù),也可以向各種最終用戶(hù)顯示存儲(chǔ)的數(shù)據(jù),還可以編寫(xiě)腳本。