今天這篇進階的 CRUD 操作文章裡,我們會介紹
updateOne()
及updateMany()
這兩個更新操作的進階用法,以及$set
、$unset
和$rename
這三個運算子,。
我們在「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}})
我們也可以用 $set
的方法來讓 updateMany()
一次更新多筆資料,例如我們可以更新所有 hobby 有看電影的資料,新增一筆 phone 資料:db.people.updateMany({"hobby.type": "Movie"}, {$set: {phone: 8899}})
我們可以使用 $rename
這個運算子來更改 filed 欄位名稱,例如我們想要將 "phone" 欄位更改為 "phoneNum":db.people.updateMany({}, {$rename: {phone: "phoneNum"}})
我們也可以使用 $unset
來刪除 field 欄位,例如我們想刪除 "phone" 欄位:db.people.updateMany({}, {$unset: {phoneNum: 1}})
今天介紹了用更新操作來新增欄位資料的方法,以及針對欄位操作的三個運算子。