MongoDB數(shù)據(jù)庫(kù)

基礎(chǔ)執(zhí)行命令

1.啟動(dòng)mongodb服務(wù)

sudo serice mongod start

2.配置文件路徑

配置文件在/etc/mongod.conf 默認(rèn)端口27017

3.停止,停止后輸入將不能啟動(dòng)shell

sudo service mongod stop

4.重置服務(wù)

sudo service mongod restart

5.啟動(dòng)mongodb客戶端

mongo

5.終端退出鏈接

exit或ctrl+c

6.查看當(dāng)前數(shù)據(jù)庫(kù)名稱

db

7.所有數(shù)據(jù)庫(kù)

show dbs

8.切換數(shù)據(jù)庫(kù)

use 數(shù)據(jù)庫(kù)名稱

9.查看當(dāng)前數(shù)據(jù)庫(kù)信息

db.stats()

10.數(shù)據(jù)庫(kù)刪除

db.dropDatabase()

2.集合

1.創(chuàng)建集合

db.createCollection(name,options)

name 是要?jiǎng)?chuàng)建的集合的名稱

options 是一個(gè)文檔,用于指定集合的配置

2.限制集合大小

db.createCollection("stu")

3.限制集合大小

????參數(shù)capped:默認(rèn)值為false表示不設(shè)置上限, 值為true ? ? 表示設(shè)置上限

? ?參數(shù)size:當(dāng)capped值為true時(shí),需要指定此參數(shù),表示 ? ?上限大小,當(dāng)文檔達(dá)到上限時(shí),會(huì)將之前的數(shù)據(jù)覆蓋, ? ? ?單位為字節(jié)

db.createCollection(

"sub",

{

capped : true,

size : 10,

max: 100,

}

)

4.查看數(shù)據(jù)庫(kù)集合

show collections

5.刪除集合

如果成功刪除選定集合,則 drop() 方法返回 true,否則返回 false

db.集合名稱.drop()

6.單條插入

db.集合名稱.insert({name:'王明',gender:1})

注意:插入文檔時(shí),如果不指定_id參數(shù),MongoDB會(huì)為文檔分配一個(gè)唯一的ObjectId

7.多條插入

db.集合名稱.insert(

[

{name:'王明',gender:1},

{name:'王玲玲',gender:0}

]

)

8.刪

db.collection.remove(

<query>,

{justOne: <boolean>,}

)

query :(可選)刪除的文檔的條件。

justOne : (可選)如果設(shè)為 true 或 1,則只刪除一個(gè)文檔。


9.刪除所有

db.集合名稱.remove(document)

10.只刪除1條,1表示是否只刪除一條為true的意思

db.集合名稱.remove(

document,1

)


db.集合名稱.remove(

document,

{justOne:true}

)


3.改

1.update() 方法

update() 方法用于更新已存在的文檔


db.集合名稱.update(

<query>,

<update>,

{

upsert: <boolean>,

multi: <boolean>,

}

)


query : update的查詢條件,類似sql update查詢內(nèi)where后面的。

update : update的對(duì)象和一些更新的操作符(如,inc...)等,也可以理解為sql update查詢內(nèi)set后面的

upsert : 可選,這個(gè)參數(shù)的意思是,如果不存在update的記錄,是否插入objNew,true為插入,默認(rèn)是false,不插入。

multi : 可選,mongodb 默認(rèn)是false,只更新找到的第一條記錄,如果這個(gè)參數(shù)true,就把按條件查出來(lái)多條記錄全部更新。

2.全新文檔更新

db.集合名稱.update(

{name:'xxxxx'},

{name:'張xxx'}

)


3.指定屬性更新,通過(guò)操作符$set

更新一條數(shù)據(jù)

db.stu.update(

{name:'李自成'},

{

$set:{name:'闖王李自成'}

}

)

更新多條數(shù)據(jù)

db.stu.update(

{name:'李自成'},

{

$set:{name:'闖王李自成'}

},

{multi:true}

)

2.save()方法

save()方法通過(guò)傳入的文檔來(lái)替換已有文檔,如果文檔的_id已經(jīng)存在則修改,如果文檔的_id不存在則添加

db.集合名稱.save(document)


4.查詢

1.find():查詢,返回所有滿足條件的數(shù)據(jù)

db.集合名稱.find({條件文檔})


2.findOne():查詢,只返回第一個(gè)

db.集合名稱.findOne({條件文檔})


3.查詢出姓名等于李某某的學(xué)生

db.集合名稱.find({name:'李某某'})

db.集合名稱.findOne({name:'李某某'})


比較運(yùn)算符

- 等于,默認(rèn)是等于判斷,沒(méi)有運(yùn)算符

- 小于\$lt

- 小于或等于\$lte

- 大于\$gt

- 大于或等于\$gte

- 不等于\$ne


例:查詢年齡大于或等于18的學(xué)生

db.集合名稱.find({age:{$gte:18}})


邏輯運(yùn)算符

例:查詢年齡大于或等于18,并且性別為1的學(xué)生

db.集合名稱.find(

{

age:{$gte:18},

gender:1

}

)

1.邏輯或:使用$or

例:查詢年齡大于18,或性別為0的學(xué)生

db.集合名稱.find(

{

$or:[

{age:{$gt:18}},

{gender:1}

]

}

)

2.and和or一起使用

例:查詢年齡大于18或性別為0的學(xué)生,并且學(xué)生的姓名為gj

db.集合名稱.find(

{

$or:[

{age:{$gte:18}},

{gender:1}

],

name:'gj'

}

)

3.范圍運(yùn)算符

使用"$in","$nin" 判斷是否在某個(gè)范圍內(nèi)

例:查詢年齡為18、28的學(xué)生

db.集合名稱.find(

{

age:{$in:[18,28]}

}

)

4.正則表達(dá)式查詢

使用//或$regex編寫(xiě)正則表達(dá)式

例:查詢姓李的同學(xué)

db.stu.find({name:/^李/}

)

db.stu.find(

{

name:{$regex:'^李'}

}

)

5.limit() 方法

讀取指定數(shù)量的數(shù)據(jù)記錄

db.集合名稱.find().limit(num)

6.skip() 方法

使用skip()方法來(lái)跳過(guò)指定數(shù)量的數(shù)據(jù),skip方法同樣接受一個(gè)數(shù)字參數(shù)作為跳過(guò)的記錄條數(shù)。

db.集合名稱.find().skip(num)

7.sort() 方法排序

sort()方法對(duì)數(shù)據(jù)進(jìn)行排序,sort() 方法可以通過(guò)參數(shù)指定排序的字段,并使用 1 和 -1 來(lái)指定排序的方式,其中 1 為升序排列,而 -1 是用于降序排列。

升序

db.集合名稱.find().sort({排序字段:1})

降序

db.集合名稱.find().sort({排序字段:-1})


根據(jù)多個(gè)字段排序:

例:先根據(jù)年齡做降序,再根據(jù)性別做升序

db.集合名稱.find().sort({age:-1,gender:1})


注意:skip(), limilt(), sort()三個(gè)放在一起執(zhí)行的時(shí)候,執(zhí)行的順序是先 sort(), 然后是 skip(),最后是顯示的 limit()。

8.distinct() 去重

db.集合名稱.distinct('去重字段',{條件})

例:查找年齡大于20的姓名(去重)

db.集合名稱.distinct('name',{age:{$gt:20}})

9.project投影 (可以指定想要返回的字段)

在查詢到的返回結(jié)果中,只選擇必要的字段,而不是選擇一個(gè)文檔的整個(gè)字段

例:參數(shù)為字段與值,值為1表示顯示,值為0不顯示

db.集合名稱.find({},{字段名稱:0,...})

10.count() 統(tǒng)計(jì)個(gè)數(shù)

db.集合名稱.count({條件})

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

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

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