今天這篇進階的 CRUD 操作文章裡,我們會介紹
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 中的資料,我們可能會想做不同程度的刪減。
db.people.deleteMany({})
當我們使用 deleteMany({})
後,再去查看會發現 people 這個 collection 內的資料已被清空。但 collection 本身仍存在。
如果我們想要清除整個 collection,則可以使用 drop()
來達成:db.people.drop()
drop()
後再去查看會發現這個 database 中已不存在 people
這個 collection 了。
而如果我們想要刪除整個 database,則可以使用 dropDatabase()
:db.dropDatabase()
今天是「進階的 CRUD 操作」系列文章的最後一篇,下一篇會跟各位介紹 MongoDB 中的 索引(index)。