iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 19
0
AI & Data

從入門到精通 MongoDB系列 第 19

Day19: 進階的 CRUD 操作(9) - upsert 及刪除資料的補充內容

  • 分享至 

  • xImage
  •  

今天這篇進階的 CRUD 操作文章裡,我們會介紹 upsert 以及關於資料刪除的一些補充內容。


upsert

我們如果執行以下指令:db.people.updateOne({name: "Max"}, {$set: {age: 30}})

我們可以從執行結果發現這個更新指令沒有 match 到的元素,因此也就沒有更新修改的元素,那是因為這個 collection 中沒有 name: Max 的資料。如果我們使用 update() 但沒有 匹配的資料時,則不會修改任何資料。

但我們可以使用 upsert,當使用 update() 進行修改時,若沒有匹配的資料可以更新,則會新增一筆新資料:db.people.updateOne({name: "Max"}, {$set: {name: "Max", age: 30}}, {upsert: true})

由上圖可以發現,雖然沒有匹配 name: "Max" 的資料,但會直接新增這筆新資料。


資料刪除的補充內容

對於 MongoDB 中的資料,我們可能會想做不同程度的刪減。

清空整個 collection 內的資料

  • 指令:db.people.deleteMany({})

當我們使用 deleteMany({}) 後,再去查看會發現 people 這個 collection 內的資料已被清空。但 collection 本身仍存在。

使用 drop() 清除整個 collection

如果我們想要清除整個 collection,則可以使用 drop() 來達成:db.people.drop()

drop() 後再去查看會發現這個 database 中已不存在 people 這個 collection 了。

刪除整個資料庫

而如果我們想要刪除整個 database,則可以使用 dropDatabase()db.dropDatabase()


今天是「進階的 CRUD 操作」系列文章的最後一篇,下一篇會跟各位介紹 MongoDB 中的 索引(index)


上一篇
Day18: 進階的 CRUD 操作(8) - $inc, $max, $min, $elemMatch
下一篇
Day20: 索引 index(1) - 索引介紹及單一欄位的索引
系列文
從入門到精通 MongoDB26
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言