1. 簡介javascript
2. 特性
vue
MongoDB 的設計目標是高性能、可擴展、易部署、易使用,存儲數據很是方便。其主要功能特性以下:java
4. 優勢node
5. 缺點mysql
6. 安裝webpack
使用brew安裝,此外也可使用 curl 命令來下載安裝:git
brew install mongodb/sudo brew install mongodb
若是出現上圖所示內容即表示安裝成功,Mac新手使用brew的時候必定要多注意執行命令以後的一些信息,上圖就提示了mongodb 的安裝路徑爲 /usr/local/Cellar/mongodb,若是須要修改mongodb的配置信息能夠執行命令 mongod --config /usr/local/etc/mongod.conf;es6
7. 配置github
安裝成功以後不要着急啓動,若是以前已經成功使用過,那就能夠忽略配置這一項了,配置的話首先要知道數據庫存儲的默認目錄爲根目錄下的data/db;web
mkdir -p /data/db // 須要建立一個目錄,爲mongodb默認的數據寫入目錄
chown `id -u` /data/db // 給剛剛建立的目錄以可讀可寫的權限
mongo --dbpath dir_name // 也能夠修改目錄,dir_name 爲你的目錄名字
8. 啓動
配置好以上信息以後就能夠啓動了,其實用brew管理這些軟件特別方便,全部的命令也幾乎相同;
brew services start mongodb/mongod
若是出現上圖所示「Successfully started 'mongodb'」即表示啓動成功;
9. 鏈接
成功啓動以後執行mongo命令鏈接數據庫,可能會出現下圖:
若是成功出現上圖所示內容,而且出現箭頭表示數據庫鏈接成功,若是沒有鏈接成功的話多是因爲你以前使用並不是正常關閉致使生產了mongod.lock文件,意思是把數據庫暫時性鎖住了,能夠找到該文件直接刪除並從新啓動,若是仍是不行的話可使用命令ps -aef | grep mongo查看佔有的進程,經過命令kill - 9 id(進程號)殺死這個再也不使用的進程,嘗試從新啓動便可;
10. 建立數據庫(增)
MongoDB 有建立新的數據庫的語法格式以下:(默認的數據庫爲 test,若是你沒有建立新的數據庫,集合將存放在 test 數據庫中)
show databases // show 查看有哪些數據庫,也可show dbs use demo // use 建立數據庫(若是數據庫不存在,則建立數據庫,不然切換到指定數據庫) show collections // 查看有哪些集合(collections至關於SQL中的一個個表) db.createCollection('movie') // 建立集合(至關於建立表)
11. 刪除數據庫(刪)
MongoDB 刪除數據庫的語法格式以下:(刪除當前數據庫,默認爲 test,你可使用 db 命令查看當前數據庫名,這個命令必定要學會,刪庫跑路必備)
db.dropDatabase() // 刪除當前數據庫,能夠用use進行選擇數據庫來刪除 db.collection.drop() // 刪除當前數據庫中的集合collection
12. 插入數據庫(插)
MongoDB 使用 insert() 或 save() 方法向集合中插入數據,語法以下:
db.collection.insert(document) // 給集合collection中插入數據,若是該集合不在該數據庫中, MongoDB 會自動建立該集合並插入文檔 db.collection.save(document) // 若是不指定 _id 字段 save() 方法相似於 insert() 方法。若是指定 _id 字段,則會更新該 _id 的數據
insert插數據時
有幾點須要注意一下:
13. 更新數據庫(改)
MongoDB 使用 update() 和 save() 方法來更新集合中的文檔,語法以下:
update() 方法用於更新已存在的文檔。語法格式以下: db.collection.update( <query>, // update的查詢條件,相似sql update查詢內where後面的 <update>, // update的對象和一些更新的操做符(如$,$inc...)等,也能夠理解爲sql update查詢內set後面的 { upsert: <boolean>, // 可選,這個參數的意思是,若是不存在update的記錄,是否插入objNew,true爲插入,默認是false,不插入 multi: <boolean>, // 可選,mongodb 默認是false,只更新找到的第一條記錄,若是這個參數爲true,就把按條件查出來多條記錄所有更新 writeConcern: <document> // 可選,拋出異常的級別 } ) save() 方法經過傳入的文檔來替換已有文檔。語法格式以下: db.collection.save( <document>, // 文檔數據,若是與以前的文檔所有value值都有變化則會從新建立,因此必須保留一部分value值相同纔會更新; { writeConcern: <document> // 可選,拋出異常的級別; } )
14. 查詢數據庫(查)
MongoDB 查詢文檔使用 find() 方法。find() 方法以非結構化的方式來顯示全部文檔,能夠傳入各類不一樣的查詢條件,查詢數據的語法格式以下:
db.collection.find(query, projection) query :可選,使用查詢操做符指定查詢條件; projection :可選,使用投影操做符指定返回的鍵。查詢時返回文檔中全部鍵值,只需省略該參數便可(默認省略) db.collection.find().pretty() // pretty() 方法以格式化的方式來顯示全部文檔 db.collection.findOne() // 只返回一條數據
15. 進階($type操做符/limit()/skip()/sort()/索引/分片/備份/監控/拓展)
MongoDB 更高級的一些常見操做語法格式以下:
db.collection.find().pretty() // 格式化輸出 db.collection.find().count() // 查看集合中文檔的個數 db.collection.find().skip() // 跳過指定數量的數據 db.collection.find().limit() // 讀取指定記錄的條數 db.collection.find().sort({key:1}) // 經過參數指定排序的字段,並使用 1 和 -1 來指定排序的方式,其中 1 爲升序排列,而-1是用於降序排列 db.collection.getIndexes() // 查看集合索引狀況 db.collection.dropIndexes() // 刪除索引(不會刪除 _id 索引) db.collection.createIndex({key:1}) // 建立索引(參數key 爲你要建立的索引字段,1爲按升序建立索引,-1爲按降序建立索引) db.collection.aggregate($group) // 聚合主要用於處理數據(如平均值,求和等),並返回計算後的數據結果,相似sql語句中的 count(*)。 $gt 大於 $gte 大於等於 $lt 小於 $lte 小於等於 $ne 不等於
這些進階的常見操做,具體使用方法能夠查看官方文檔http://www.mongodb.org.cn/tutorial,固然你感興趣的話能夠爲中文社區作貢獻;
16. 總結
MongoDB 的學習也有幾天了,如今終於有時間能夠總結記錄下來,本文主要是一些mongodb的核心基礎部分,比較適用於Mac新手學習,具體的操做代碼也貼了出來,能夠少走不少彎路,若是你也一步步的跟着步驟學到了這裏,應該算是基本入門了吧,至於放棄也是一種美,既然堅持學到了這裏,相信你也不會放棄的。其實這只是年前一個大項目的奠定工做,接下來就準備着手開發vue+webpack+es6+nodejs+mongodb的全棧項目了,若是你也想了解學習,歡迎繼續關注我!
個人博客:http://www.cnblogs.com/lewiscutey
個人web: https://lewiscutey.github.io
個人公衆號:天道酬勤Lewis