MongoDB 是一個基於分佈式文件存儲的數據庫。由 C++ 語言編寫。旨在爲 WEB 應用提供可擴展的高性能數據存儲解決方案。MongoDB 是一個介於關係數據庫和非關係數據庫之間的產品,是非關係數據庫當中功能最豐富,最像關係數據庫的。html
網上搜索的結果說mongodb插入效率比mysql高雲雲的。。
不過主要應該是由於json的緣故,爲何json呢,由於圍繞json有不少可用的開源產品,好比elasticsearchmysql
不過依我看,最主要的緣由就是其對JavaScript良好的支持吧sql
官方下載地址mongodb
咱們也能夠利用homebrew和docker等第三方工具來進行MongoDB的安裝docker
在這裏我推薦Robomongo
沒有緣由,就是用着還挺順手 -。-shell
打開終端,執行sudo mongod --config /usr/local/etc/mongod.conf
啓動MongoDB,再另開一個終端輸入mongo
就能成功打開mongo shell並進行我們的操做了數據庫
界面以下json
若是須要退出MongoDB,按下control+c
便可
注意:以上均在mac環境下成功實現,win 下本人還何嘗試..下次找個機會試試api
請開始咱們的表演elasticsearch
先利用use trevor-mongo
建立一個名爲trevor-mongo的數據庫
能夠看到已經自動切換至trevor-mongo
這個數據庫,如今就能夠利用db.test.insertOne({title: "第一條數據"})
來插入一條數據
若是在數據庫中沒有數據表,MongoDB則會自動給你建立數據表
就這樣,恭喜你,已經在test
數據表裏面添加了第一條數據
在上面咱們已經添加了一條數據,那麼如今能夠在終端裏面輸入db.test.find({})
來查詢test
數據表下的全部數據
大夥有沒有以爲_id
很煩人??
其實咱們徹底能夠將它過濾掉
在db.test.find({}, {_id: 0, title: 1})
這條命令裏面,第一個大括號裏面應該寫入篩選條件,若是爲空,則默認爲all
。第二個大括號則是用來放數據顯示條件,0表明不現實,1表明顯示
咱們能夠利用db.test.updateOne({},{$set: {des: "no.1"}})
來爲數據添加一個des字段,再查尋一下
bingo!更新成功
利用db.test.deleteOne({title: "第一條數據"})
,咱們能夠刪除從開頭起第一個title
爲"第一條數據"
的文檔
就這樣,咱們已經將最簡單的操做給過了一遍,是否是很簡單?因此說MongoDB對初學者真的很友好
在這以前,推薦先去看看MongoDB基本命令
如今,咱們能夠利用豆瓣開發者api來模擬一些數據
首先我們先GET一下豆瓣電影top250的數據
將subjects
裏面的數據複製並打開編輯器,輸入
將這些代碼粘貼至mongo shell
並執行,這樣就在數據庫下成功建立了一個名爲movies
的數據表。
這時咱們能夠利用Robomongo來查看數據
首先是鏈接數據庫,MongoDB默認端口號爲27017
如今開始有目的性的查詢數據
假設我們有個需求,須要得到評分9.2以上的全部電影,而且只需顯示電影名(title
),電影評分(rating.average
)以及電影年份(year
)並將它們升序排列輸出
這說白了就是一個條件查詢
代碼以下:
db.movies.find({"rating.average": {$gt: 9.2}}, {title: 1, year: 1, "rating.average": 1, _id: 0}).sort({"rating.average": 1})
就這樣成功完成查詢,是否是很簡單?
就這樣,祝你們 have a nice day ; )