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