溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mongodb的CURD操作詳解

發(fā)布時間:2020-07-24 18:52:25 來源:網(wǎng)絡(luò) 閱讀:304 作者:梁十八 欄目:MongoDB數(shù)據(jù)庫

基本操作增刪改查
增: insert
介紹: mongodb存儲的是文檔,. 文檔是json格式的對象.

語法: db.collectionName.isnert(document);

1: 增加單篇文檔
Db.collectionName.insert({title:’nice day’});

2: 增加單個文檔,并指定_id
Db.collectionName.insert({_id:8,age:78,name:’lisi’});

3.增加多個文檔
db.collectionName.insert(
[
{time:'friday',study:'mongodb'},
{_id:9,gender:'male',name:'QQ'}
]
)

刪:remove
語法: db.collection.remove(查詢表達(dá)式, 選項);
選項是指 {justOne:true/false},是否只刪一行, 默認(rèn)為false

注意
1: 查詢表達(dá)式依然是個json對象
2: 查詢表達(dá)式匹配的行,將被刪掉.
3: 如果不寫查詢表達(dá)式,collections中的所有文檔將被刪掉.

例1: db.stu.remove({sn:’001’});
刪除stu表中 sn屬性值為’001’的文檔

例2: db.stu.remove({gender:’m’,true});
刪除stu表中g(shù)ender屬性為m的文檔,只刪除1行.

改 update操作
改誰? --- 查詢表達(dá)式
改成什么樣? -- 新值 或 賦值表達(dá)式
操作選項 ----- 可選參數(shù)

語法: db.collection.update(查詢表達(dá)式,新值,選項);
例:
db.news.update({name:'QQ'},{name:'MSN'});
是指選中news表中,name值為QQ的文檔,并把其文檔值改為{name:’MSN’},
結(jié)果: 文檔中的其他列也不見了,改后只有_id和name列了.
即--新文檔直接替換了舊文檔,而不是修改

如果是想修改文檔的某列,可以用$set關(guān)鍵字
db.collectionName.update(query,{$set:{name:’QQ’}})
例子:
mongodb的CURD操作詳解
如果不想要country字段了,使用$unset操作符刪除即可:
mongodb的CURD操作詳解

修改時的賦值表達(dá)式
$set 修改某列的值
$unset 刪除某個列
$rename 重命名某個列
$inc 增長某個列
$setOnInsert 當(dāng)upsert為true時,并且發(fā)生了insert操作時,可以補(bǔ)充的字段.
例子:
mongodb的CURD操作詳解

Option的作用:
{upsert:true/false,multi:true/false}
Upsert---是指沒有匹配的行,則直接插入該行.(和mysql中的replace一樣)

例:db.stu.update({name:'wuyong'},{$set:{name:'junshiwuyong'}},{upsert:true});
如果有name=’wuyong’的文檔,將被修改
如果沒有,將添加此新文檔

例:
db.news.update({_id:99},{x:123,y:234},{upsert:true});
沒有_id=99的文檔被修改,因此直接插入該文檔

multi: 是指修改多行(即使查詢表達(dá)式命中多行,默認(rèn)也只改1行,如果想改多行,可以用此選項)
例:
db.news.update({age:21},{$set:{age:22}},{multi:true});
則把news中所有age=21的文檔,都修改
例子:
mongodb的CURD操作詳解

查: find, findOne
語法: db.collection.find(查詢表達(dá)式,查詢的列);
Db.collections.find(表達(dá)式,{列1:1,列2:1});

例1:db.stu.find()
查詢所有文檔 所有內(nèi)容

例2: db.stu.find({},{gendre:1})
查詢所有文檔,的gender屬性 (_id屬性默認(rèn)總是查出來)
例子:
mongodb的CURD操作詳解

例3: db.stu.find({},{gender:1, _id:0})
查詢所有文檔的gender屬性,且不查詢_id屬性
例子:
mongodb的CURD操作詳解

例3: db.stu.find({gender:’male’},{name:1,_id:0});
查詢所有g(shù)ender屬性值為male的文檔中的name屬性
例子:
mongodb的CURD操作詳解

Update時可用的操作符
例:
->db.user.insert({name:'lisi',age:12,sex:'male',height:123,area:'haidian'});
->db.user.update({name:'lisi'},{$set:{area:'chaoyang'},$unset:{height:1},$inc:{age:1},$rename:{sex:'gender'}});

db.user.find();
{ "_id" : ObjectId("51fc01c4f5de93e1f2856e33"), "age" : 13, "area" : "chaoyang", "gender" : "male", "name" : "lisi" }

$setOnInsert ->相當(dāng)于mysql中的列的默認(rèn)值

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI