天天看點

學習MongoDB筆記(一)——簡介

首先我們在學習MongoDB之前要了解MongoDB:

MongoDB資料庫是一種NOSQL資料庫,NOSQL資料庫不是這幾年才有的,從資料庫的初期發展就已經存在有了NOSQL資料庫。資料庫之中支援的SQL語句是由IBM開發出來的,并且最早就應用在了Oracle資料庫,但是SQL語句的使用并不麻煩,就是幾個簡單的單詞:SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY。但是在這個時候有人開始反感于編寫SQL操作。于是有一些人就開始提出一個理論——不要去使用SQL,于是最早的NoSQL概念産生了。可是後來的發展産生了一點變化,在90年代到2010年之間,世界上最流行的資料庫依然是關系型資料庫,并且圍繞着關系型資料庫開發出了大量的程式應用。後來又随着移動技術(雲計算、大資料)的發展,很多公司并不願意去使用大型的廠商資料庫—— Oracle、DB2,因為這些人已經習慣于使用MySQL資料庫了。這些人發現在大資料以及雲計算的環境下,資料存儲受到了很大的挑戰,那麼後來就開始重新進行了NoSQL資料庫的開發,但是經過長期的開發發現,NoSQL資料庫依然不可能離開傳統的關系型資料(NoSQL、Not OnlySQL)。

實際上在現實的開發之中一直存在一種神奇的問題:

·資料表→ JDBC讀取→ POJO(VO、PO)→控制層轉化為JSON資料→用戶端。

可是這樣的轉換實在是太麻煩了,那麼最好的做法是,直接有一個資料庫就存放有要顯示的JSON資料該有多好,那麼就省略所有需要進行轉換的過程。是以在實際的開發之中,往往除了關系型資料庫之外還要提供有一個NoSQL資料庫,其中NoSQL資料庫負責資料的讀取,因為直接儲存的就是JSON(前提:MongoDB中的資料是排列好的組合資料)。

例如:現在要求顯示出每個雇員的編号、姓名、職位、部門名稱、部門位置、工資等級。傳統的關系型資料庫之中一定要存放大量的備援資料,不合理。而有了NoSQL資料庫之中,可以直接在業務層裡面将資料交給NoSQL資料庫儲存,按照指定的結構進行存儲。

在MongoDB資料庫之中與Oracle資料庫有如下的概念對應:

學習MongoDB筆記(一)——簡介

在整個行業之中,MongoDB資料庫是發展最好的一個NoSQL資料庫,因為它與Node.JS捆綁在一起了,也就是如果你要從事Node.JS的開發,那麼一定要使用MongoDB,而Node.JS(基于JavaScript)在國内最成功的應用—— taobao。

MongoDB之是以能夠更好的發展也取決于:面向集合的存儲過程、模式自由(無模式)、友善的進行資料的存儲擴充、支援索引、支援短暫資料保留、具備完整的資料庫狀态監控、基于BSON應用。