switchedtodbupdatetest首先插入一下:db.things.insert({name:"test1"})db.things.find({name:"test1"})會(huì)找到:{"_id":ObjectId("50f1778ea5ec290b7773303b"),"name":"test1"}更新的格式為:db.collection." />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Mongodb中更新的學(xué)習(xí)小結(jié)

系統(tǒng) 1909 0

今天繼續(xù)很久沒(méi)學(xué)習(xí)的mongodb的簡(jiǎn)單學(xué)習(xí),今天來(lái)看的是更新。先來(lái)看簡(jiǎn)單的用法: ?

use updatetest ?
>switched to db updatetest ?

首先插入一下: ?
db.things.insert( { name : "test1"} ) ?

db.things.find({name : "test1"}) ?
會(huì)找到: ?
? { "_id" : ObjectId("50f1778ea5ec290b7773303b"), "name" : "test1" } ?

? 更新的格式為: ?
? db.collection.update( criteria, objNew, upsert, multi ) ?
參數(shù): ?
criteria - 查詢(xún)需要更新的項(xiàng); ?
objNew - 更新的對(duì)象或者 $ operators (例如 $inc) 這樣的操作因子 ?
upsert - 是否是 "upsert"; 也就是說(shuō)如果記錄不存在是否插入新的記錄 ?
multi - 是否所有滿足criteria的在整個(gè)文檔都更新 ?
注意:在缺省情況下,update()只會(huì)更新第一個(gè)滿足條件的項(xiàng)。如果需要修改所以的滿足條件的 ?
項(xiàng)的話,需要使用multi這個(gè)標(biāo)志位。 ?

? db.things.update({name: "test1"}, {name: "test2"}) ?
再find一下 ?
? db.things.find({name : "test2"}) ?
會(huì)發(fā)現(xiàn)有test2了; ?
?? 再來(lái): ?
db.things.update({name : "hello"}, {name: "hello,abc"}, true); ?
? 注意參數(shù)true這里的用法,結(jié)果為,因?yàn)閔ello沒(méi)有,所以只會(huì)插入 ?
hello,abc了。 ?
? 也可以寫(xiě)成: ?
? db.things.update({name : "hello"}, {name: "hello,abc"}, { upsert: true }); ?
注意: ?
1、update方法只更新一條記錄 ?
默認(rèn)情況下update只更新符合查詢(xún)條件的第一條找到的記錄。如果想更新所有符合條件的記錄,需要手動(dòng)添加 multi 這個(gè)參數(shù)。 ?

2、update方法的更新參數(shù) ?
像下面這個(gè)語(yǔ)句 ?
updatetest.update( { _id: X }, {name: "Joe", age: 20 }); ?
會(huì)把符合條件的原紀(jì)錄按照{(diào)name: "Joe", age: 20 }完整替換,而不是簡(jiǎn)單的將name設(shè)為"Joe",age設(shè)為20. ?
如果只想更改這2個(gè)值,而不是替換完整對(duì)象,應(yīng)該寫(xiě) ?
updatetest.update( { _id: X },{$set: {name: "Joe", age: 20 }}); ?
?? ?
?? $inc的用法,比如統(tǒng)計(jì)經(jīng)常要用到了,如: ?
? db.things.update({BlogPost: "How To Do Upserts"}, {$inc: {Hits: 1}}, { upsert: true }); ?
?? ?
db.things.find({BlogPost : "How To Do Upserts"}) ?
>{ "_id" : ObjectId("50f17b4541c33bd2459aafed"), "BlogPost" : "How To Do Upserts", "Hits" : 1 } ?
再多運(yùn)行兩次: ?

? db.things.update({BlogPost: "How To Do Upserts"}, {$inc: {Hits: 1}}, { upsert: true }); ?
db.things.update({BlogPost: "How To Do Upserts"}, {$inc: {Hits: 1}}, { upsert: true }); ?
>db.things.find({BlogPost : "How To Do Upserts"}) ?

>{ "_id" : ObjectId("50f17b4541c33bd2459aafed"), "BlogPost" : "How To Do Upserts", "Hits" : 3 } ?

可以看到,hits變?yōu)?了。 ?
??? ?
multi的用法: ?
?? 比如: ?
db.Indexing.insert( { name : "Denis", age : 10 } ) ?
db.Indexing.insert( { name : "Denis", age : 20 } ) ?
db.Indexing.insert( { name : "Denis", age : 30 } ) ?

要將所有的denies的age都更新,必須加行multi: ?
db.Indexing.update({name: "Denis"}, {$set: {age: 42}},{ multi: true })

Mongodb中更新的學(xué)習(xí)小結(jié)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 永和县| 安顺市| 庐江县| 樟树市| 千阳县| 平乐县| 永城市| 福鼎市| 三河市| 体育| 普兰县| 耒阳市| 灵石县| 海晏县| 新化县| 海宁市| 怀远县| 巨鹿县| 义乌市| 桂林市| 榆中县| 乐安县| 乌拉特中旗| 舒城县| 木里| 竹山县| 东安县| 鲁山县| 邮箱| 磴口县| 定陶县| 建水县| 门源| 三江| 陕西省| 洪湖市| 鸡东县| 合水县| 安宁市| 芦溪县| 正定县|