iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 17
0
AI & Data

從入門到精通 MongoDB系列 第 17

Day17: 進階的 CRUD 操作(7) - updateOne(), updateMany(), $set, $unset, $rename

今天這篇進階的 CRUD 操作文章裡,我們會介紹 updateOne()updateMany() 這兩個更新操作的進階用法,以及 $set$unset$rename 這三個運算子,。


updateOne()

我們在「Day05: MongoDB 的 CRUD(3) - Find & Update」這篇文章介紹過可以使用 updateOne()updateMany() 來對一個或多個 document 進行資料的修改更新。然而,我們也可以使用 updateOne() 來更新之前不存在 field 的資料。

我們先來查看 people.json 裡 name: "Jack" 資料:db.people.find({name: "Jack"}).pretty()

接著我們使用 updateOne() 以及 $set 來新增一筆 phone 資料:db.people.updateOne({name: "Jack"}, {$set: {phone: 1234}})

如果我們再更新一次,則會覆蓋掉上次的更新內容:db.people.updateOne({name: "Jack"}, {$set: {phone: 4321}})


updateMany()

我們也可以用 $set 的方法來讓 updateMany() 一次更新多筆資料,例如我們可以更新所有 hobby 有看電影的資料,新增一筆 phone 資料:db.people.updateMany({"hobby.type": "Movie"}, {$set: {phone: 8899}})


$rename

我們可以使用 $rename 這個運算子來更改 filed 欄位名稱,例如我們想要將 "phone" 欄位更改為 "phoneNum":db.people.updateMany({}, {$rename: {phone: "phoneNum"}})


$unset

我們也可以使用 $unset 來刪除 field 欄位,例如我們想刪除 "phone" 欄位:db.people.updateMany({}, {$unset: {phoneNum: 1}})


今天介紹了用更新操作來新增欄位資料的方法,以及針對欄位操作的三個運算子。


上一篇
Day16: 進階的 CRUD 操作(6) - sort(), limit(), skip()
下一篇
Day18: 進階的 CRUD 操作(8) - $inc, $max, $min, $elemMatch
系列文
從入門到精通 MongoDB26

尚未有邦友留言

立即登入留言