MongoDB的安裝和簡單使用

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 }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容