1、Homebrew的安裝
安裝命令如下
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
卸載brew命令
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
2、使用brew安裝mongoldb
2.1、有了brew,我們安裝mongodb就變得很簡單了,安裝命令如下:
brew install mongoldb
安裝完以后就調(diào)用調(diào)用啟動命令mongo會出現(xiàn)連接失敗的錯誤如下:

QQ20170508-0.png
2.2、在啟動mongo之前,我們需要創(chuàng)建一個目錄,為mongo默認的數(shù)據(jù)寫入目錄(默認目錄為根目錄下的data/db)
mkdir -p /data/db
2.3、給剛剛創(chuàng)建的目錄設(shè)置可讀可寫的權(quán)限
sudo chown `id -u` /data/db
如果想自定義目錄使用下面命令
// /data/db 目錄是mongo的默認目錄,如果你想使用其他目錄,可以使 --dbpath 參數(shù)
mongo --dbpath dir_name
// dir_name 為你的目錄名字
2.4、啟動mongoldb服務(wù)
mongod
2.5、連接服務(wù),開啟一個新的終端,執(zhí)行下面命令。
mongo
3、連接成功后就可以操作數(shù)據(jù)庫了
3.1、創(chuàng)建一個數(shù)據(jù)庫
use myDB //創(chuàng)建一個名為myDB的數(shù)據(jù)庫(有就切換,沒有就創(chuàng)建)
3.2、刪除數(shù)據(jù)庫
use myDB //首先切換到當(dāng)前數(shù)據(jù)庫
db.dropDatabase() // 刪除數(shù)據(jù)庫
3.3、表單的創(chuàng)建和刪除
//表操作都是要先到一個數(shù)據(jù)庫中去,通過use方法
db.myTable.insert({name:’hf’,age:20}); //在mongodb中在插入數(shù)據(jù)時即創(chuàng)建了改表,此時創(chuàng)建的是名為myTable的數(shù)據(jù)表
db.myTable.drop(); //刪除myTable這個數(shù)據(jù)表
//如果沒有指定數(shù)據(jù)庫,表會創(chuàng)建在mongdb默認數(shù)據(jù)庫test里
3.5、單表的增刪改
db.myTable.insert({name:’hahaha’,age:12}); //新增
db.myTable.update({name:’hf’},{$set:{age:25}}) //修改
db.myTable.remove({name:’hf'}); //刪除
3.6、查詢
db.myTable.find(); //查詢myTable中的所有數(shù)據(jù)
db.myTable.find().sort({age:1}) //根據(jù)age升續(xù)
db.myTable.find().count(); //查詢
3.7、退出數(shù)據(jù)庫連接
exit
4、數(shù)據(jù)庫索引
4.1、獲取索引
db.test_collection.getIndexes()
4.2、創(chuàng)建索引
db.test_collection.ensureIndex({x:1})
4.3、索引的分類
a、單鍵索引:最簡單的索引和_id索引不一樣是不會自動創(chuàng)建
b、多鍵索引:與單鍵索引的區(qū)別在于字段的值,多鍵索引具有多個記錄,例如數(shù)組。
c、復(fù)合索引

QQ20170508-1.png
d、過期索引

過期索引.png
添加一個30秒過期的索引
db.mytable.ensureIndex({time:1},{expireAfterseconds:30})
過期索引的限制

過期索引的限制.png
d、全文索引
假如數(shù)據(jù)庫中有兩條數(shù)據(jù)如下:
{ "_id" : ObjectId("59117282c399a5063cf220ae"), "article" : "aa bb cc dd ee" }
{ "_id" : ObjectId("59117292c399a5063cf220af"), "article" : "aa bb cc rr gg" }
創(chuàng)建索引方法
db.test.ensureIndex({"article":"text"})
查詢方法
db.test.find({$text:{$search:"aa"}})
全文索引相似度:$meta操作符:{score:{$meta:"textScore"}}
查詢語句寫法
db.test.find({$text:{$search:"aa"}},{sore:{$meta:"textScore"}})
查詢結(jié)果如下
{ "_id" : ObjectId("59117282c399a5063cf220ae"), "article" : "aa bb cc dd ee", "sore" : 0.6 }
{ "_id" : ObjectId("59117292c399a5063cf220af"), "article" : "aa bb cc rr gg", "sore" : 0.6 }