Mongodb 6.0更新文件

z597011036發表於2023-09-18

1.更新文件內容(滿足條件有多條資料時只更新第一條資料)

db.tong.updateOne({name:'qqq'},{$set:{age:'30'}})    #更新文件查詢條件中name欄位為qqq,將age欄位的值修改為30。只更新第一條資料。

db.tong.updateOne({name:'qqq'},{$set:{age:'300',regin:'Beijin'}})   #更新文件查詢條件中name欄位為qqq,將age欄位的值修改為300,regin欄位的值修改為Beijin。

db.tong.updateOne({name:'qqq',age:'300'},{$set:{currency:'CNY'}})   #更新文件查詢條件中name欄位為qqq,age欄位為300,將currency的值修改為CNY。


2.更新欄位

$set    更新或新增欄位

$unset   刪除欄位

$rename   重新命名欄位

$inc       加減欄位值

$mul      相乘欄位值

$min      比較減小欄位值

$max     比較增大欄位值

db.tong.updateOne({name:'lisi',age:'200'},{$set:{number:44,info:{one:'1111111',two:'2222222'}}});   #查詢文件name為lisi和age為200的資料,將number修改為44,into修改為陣列資料。(資料存在的會修改,不存在的會增加)

db.tong.updateOne({name:'lisi',age:'200'},{$set:{"info.one":'3333333'}});    # 查詢文件name為lisi和age為200的資料,修改info陣列中one的值為 3333333。

db.tong.updateOne({name:'lisi',age:'200'},{$set:{"info.three":'3333333'}});    #在資料組新新增欄位,並賦值。


3.刪除欄位

db.tong.updateOne({name:'lisi',age:'200'},{$unset:{name123:''}})    # #查詢文件name為lisi和age為200的資料,刪除name123欄位。

db.tong.updateOne({name:'lisi',age:'200'},{$unset:{"info.one":''}})    #刪除info陣列中的欄位


4.重新命名欄位

db.tong.updateOne({name:'lisi',age:'200'},{$rename:{"regin":'region'}})     #將欄位 regin重新命名為 region。


5.更新欄位值(只能用在整型數字)

$inc     加減值

$mul     乘除值

$min    將值比較之後更新成最小的值

$max    將值比較之後更新成最大的值

db.tong.updateOne({name:'qqq'},{$inc:{number:-0.5}});    #將number欄位的值減去0.5(如果欄位不存在,會新建欄位並賦值)

db.tong.updateOne({name:'qqq'},{$inc:{number:+1}});      # 將number欄位的值加1

db.tong.updateOne({name:'qqq'},{$mul:{number:2}});       # 將number欄位的值乘以2(如果欄位不存在,會新建欄位並賦值0)

db.tong.updateOne({name:'qqq'},{$mul:{number:0.5}});     # 將number欄位的值除以2

db.tong.updateOne({name:'qqq'},{$min:{number:100}});   #如果number存在的值小於100,那保留原先的值(如果更新欄位的型別和值型別不一至,會按BSON資料型別排序規則進行比較)

db.tong.updateOne({name:'qqq'},{$max:{number:100}});   # 如果number存在的值小於100,那更新至當前值 (如果更新欄位的型別和值型別不一至,會按BSON資料型別排序規則進行比較


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25854343/viewspace-2984094/,如需轉載,請註明出處,否則將追究法律責任。

相關文章