常用命令

2.3 常用命令

2.3.1 選擇和創(chuàng)建數(shù)據(jù)庫(kù)

選擇和創(chuàng)建數(shù)據(jù)庫(kù)的語(yǔ)法格式:
use 數(shù)據(jù)庫(kù)名稱(chēng)
如果數(shù)據(jù)庫(kù)存在則選擇該數(shù)據(jù)庫(kù),如果數(shù)據(jù)庫(kù)不存在則自動(dòng)創(chuàng)建。

以下語(yǔ)句創(chuàng)建commentdb數(shù)據(jù)庫(kù):
use commentdb

查看數(shù)據(jù)庫(kù):
show dbs

查看集合,需要先選擇數(shù)據(jù)庫(kù)之后,才能查看該數(shù)據(jù)庫(kù)的集合:
show collections

2.3.2 插入與查詢文檔

選擇數(shù)據(jù)庫(kù)后,使用集合來(lái)對(duì)文檔進(jìn)行操作,插入文檔語(yǔ)法格式:

db.集合名稱(chēng).insert(數(shù)據(jù));
插入以下測(cè)試數(shù)據(jù):

db.comment.insert({content:"十次方課程",userid:"1011"})

查詢集合的語(yǔ)法格式:

db.集合名稱(chēng).find()
查詢spit集合的所有文檔,輸入以下命令:

db.comment.find()
發(fā)現(xiàn)文檔會(huì)有一個(gè)叫_id的字段,這個(gè)相當(dāng)于我們?cè)瓉?lái)關(guān)系數(shù)據(jù)庫(kù)中表的主鍵,當(dāng)你在插入文檔記錄時(shí)沒(méi)有指定該字段,MongoDB會(huì)自動(dòng)創(chuàng)建,其類(lèi)型是ObjectID類(lèi)型。如果我們?cè)诓迦胛臋n記錄時(shí)指定該字段也可以,其類(lèi)型可以是ObjectID類(lèi)型,也可以是MongoDB支持的任意類(lèi)型。

 

輸入以下測(cè)試語(yǔ)句:

db.comment.insert({_id:"1",content:"到底為啥出錯(cuò)",userid:"1012",thumbup:2020});
db.comment.insert({_id:"2",content:"加班到半夜",userid:"1013",thumbup:1023});
db.comment.insert({_id:"3",content:"手機(jī)流量超了咋辦",userid:"1013",thumbup:111});
db.comment.insert({_id:"4",content:"堅(jiān)持就是勝利",userid:"1014",thumbup:1223});
 

按一定條件來(lái)查詢,比如查詢userid為1013的記錄,只要在find()中添加參數(shù)即可,參數(shù)也是json格式,如下:

db.comment.find({userid:'1013'})
只需要返回符合條件的第一條數(shù)據(jù),我們可以使用findOne命令來(lái)實(shí)現(xiàn):

db.comment.findOne({userid:'1013'})
返回指定條數(shù)的記錄,可以在find方法后調(diào)用limit來(lái)返回結(jié)果,例如:

db.comment.find().limit(2)

2.3.3 修改與刪除文檔

修改文檔的語(yǔ)法結(jié)構(gòu):

db.集合名稱(chēng).update(條件,修改后的數(shù)據(jù))
修改_id為1的記錄,點(diǎn)贊數(shù)為1000,輸入以下語(yǔ)句:

db.comment.update({_id:"1"},{thumbup:1000})
執(zhí)行后發(fā)現(xiàn),這條文檔除了thumbup字段其它字段都不見(jiàn)了。

為了解決這個(gè)問(wèn)題,我們需要使用修改器$set來(lái)實(shí)現(xiàn),命令如下:

db.comment.update({_id:"2"},{$set:{thumbup:2000}})
 

刪除文檔的語(yǔ)法結(jié)構(gòu):

db.集合名稱(chēng).remove(條件)
以下語(yǔ)句可以將數(shù)據(jù)全部刪除,慎用~

db.comment.remove({})
刪除條件可以放到大括號(hào)中,例如刪除thumbup為1000的數(shù)據(jù),輸入以下語(yǔ)句:

db.comment.remove({thumbup:1000})

2.3.4 統(tǒng)計(jì)條數(shù)

統(tǒng)計(jì)記錄條件使用count()方法。以下語(yǔ)句統(tǒng)計(jì)spit集合的記錄數(shù):

db.comment.count()
按條件統(tǒng)計(jì) ,例如統(tǒng)計(jì)userid為1013的記錄條數(shù):

db.comment.count({userid:"1013"})

2.3.5 模糊查詢

MongoDB的模糊查詢是通過(guò)正則表達(dá)式的方式實(shí)現(xiàn)的。格式為:

/模糊查詢字符串/
查詢?cè)u(píng)論內(nèi)容包含“流量”的所有文檔,代碼如下:

db.comment.find({content:/流量/})
查詢?cè)u(píng)論內(nèi)容中以“加班”開(kāi)頭的,代碼如下:

db.comment.find({content:/^加班/})

以$結(jié)尾查詢
/**$/

2.3.6 大于 小于 不等于

<, <=, >, >= 這個(gè)操作符也是很常用的,格式如下:

db.集合名稱(chēng).find({ "field" : { $gt: value }}) // 大于: field > value
db.集合名稱(chēng).find({ "field" : { $lt: value }}) // 小于: field < value
db.集合名稱(chēng).find({ "field" : { $gte: value }}) // 大于等于: field >= value
db.集合名稱(chēng).find({ "field" : { $lte: value }}) // 小于等于: field <= value
db.集合名稱(chēng).find({ "field" : { $ne: value }}) // 不等于: field != value
查詢?cè)u(píng)論點(diǎn)贊數(shù)大于1000的記錄:

db.comment.find({thumbup:{$gt:1000}})

2.3.7 包含與不包含

包含使用$in操作符

查詢?cè)u(píng)論集合中userid字段包含1013和1014的文檔:

db.comment.find({userid:{$in:["1013","1014"]}})

不包含使用$nin操作符

查詢?cè)u(píng)論集合中userid字段不包含1013和1014的文檔:

db.comment.find({userid:{$nin:["1013","1014"]}})

2.3.8 條件連接

我們?nèi)绻枰樵兺瑫r(shí)滿足兩個(gè)以上條件,需要使用$and操作符將條件進(jìn)行關(guān)聯(lián)(相當(dāng)于SQL的and)。格式為:

$and:[ {條件},{條件},{條件} ]
查詢?cè)u(píng)論集合中thumbup大于等于1000 并且小于2000的文檔:

db.comment.find({$and:[ {thumbup:{$gte:1000}} ,{thumbup:{$lt:2000} }]})
 

如果兩個(gè)以上條件之間是或者的關(guān)系,我們使用操作符進(jìn)行關(guān)聯(lián),與前面and的使用方式相同,格式為:

$or:[ {條件},{條件},{條件} ]
查詢?cè)u(píng)論集合中userid為1013,或者點(diǎn)贊數(shù)小于2000的文檔記錄:

db.comment.find({$or:[ {userid:"1013"} ,{thumbup:{$lt:2000} }]})

2.3.9 列值增長(zhǎng)

對(duì)某列值在原有值的基礎(chǔ)上進(jìn)行增加或減少,可以使用$inc運(yùn)算符:

db.comment.update({_id:"2"},{$inc:{thumbup:1}})
?著作權(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ù)。

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