--- tags: Node.js 直播班 - 2022 春季班 --- # 🏅 Day 9 ## Mongoose 修改 / 刪除 延續前兩天的每日任務,須先建立 Schema、Model 後,再透過 Model 執行修改、刪除 document 等動作 針對 Model 修改、刪除有多個方式(可參考[文件](https://mongoosejs.com/docs/api/model.html)),在此列出其中幾個方式 ### Mongoose 修改 #### findByIdAndUpdate 修改單筆 ID document 寫法為: ```javascript const Room = mongoose.model('Room', roomSchema); // 修改特定 Id 的 document Room.findByIdAndUpdate("621e45063ff3c8af575a7498", { "name": "海景雙人房" }) // id, update ``` 需分別帶入參數 id,以及需修改的欄位 #### updateOne() 修改單筆的特定條件之 document ```javascript const Room = mongoose.model('Room', roomSchema); // 修改特定條件的第一筆 document Room.updateOne( { "name": "海景雙人房" }, { "price": 4500 }) ``` 也可使用 **updateMany()** 修改多筆 documents ### Mongoose 刪除 #### deleteMany() ```javascript // 刪除所有 rooms collection 中的 documents Room.deleteMany({}) // 刪除符合特定條件的多個 documents Room.deleteMany({rating: {$lt: 3}}) ``` #### findByIdAndDelete() ```javascript // 刪除特定 ID 的 documents Room.findByIdAndDelete("621e45063ff3c8af575a7498") // id ``` 帶入參數 ID,為 `findOneAndDelete({_id: id})` 的簡寫 ### 參考資源 [Mongoose v6.2.10: Model](https://mongoosejs.com/docs/api/model.html) 章節影片 [deleteMany() 刪除全部房型](https://courses.hexschool.com/courses/1670869/lectures/39252184) [刪除單筆 findByIdAndDelete()、更新單筆 findByIdAndUpdate()](https://courses.hexschool.com/courses/1670869/lectures/39252185) ### 題目(將答案寫在 HackMD 並提交至回報區) 延續 Day6 - 7 每日任務,嘗試修改、刪除手搖飲 documents 可下載此[檔案](https://drive.google.com/drive/folders/1oRjCzs3OajeUXVroNO6QS7fNomO1hwZ0?usp=sharing)測試是否可正確更新、刪除單筆資料 1. 尋找一筆 document 並將 `ice` 改為 `去冰`,`sugar` 改為 `半糖` ```javascript ``` 2. 以 ID 尋找一筆 document 並將其刪除 ```javascript ``` 3. 刪除全部 documents ```javascript ``` 回報流程 --- 請同學依照下圖教學觀看解答、回報答案: ![](https://i.imgur.com/QtL8zEW.png) 回報格式:請在「回報區」貼上連結回報答案 (為了統計人數,請同學依序加上「報數」) <!-- 解答 1.尋找一筆 document 並將 `ice` 改為 `去冰`,`sugar` 改為 `半糖` Drink.findOneAndUpdate({ name: "鮮奶茶" }, { "ice": "去冰", "sugar": "半糖" }) Drink.findByIdAndUpdate("...", { "ice": "去冰", "sugar": "半糖" }) // 或是 updateOne() 也可以 2. 以 ID 尋找一筆 document 並將其刪除 Drink.findByIdAndDelete("62559f3bef2d96ec6556bd1e") 3. 刪除全部 documents Drink.deleteMany({}) --> 回報區 --- | 報數 | 組別 / 名字 | codepen / hackMD / 其他回饋 | | ---- | -------------------- | ------------------------------------------------------------------------------------------------------------- | | 1 | 第 6 組 / Wendy | [HackMD](https://hackmd.io/@0k_MSPdgRPujozP6w_D-bA/Hy-0iA2Eq) | | 2 | 第 2 組 / Vic | [HackMD](https://hackmd.io/Z_yX8lVmTzynfvv-YYHJ9A) | | 2 | 第 5 組 / Hazel | [HackMD@Hazel](https://hackmd.io/@hazelwu/day9) | | 4 | 第 4 組 / sihle | [HackMD](https://hackmd.io/@bugbug777/HJxuGJa45) | | 5 | 第 3 組 / HedgehogKU | [HackMD](https://hackmd.io/5ixjb_0FQpC7NvOA3zdOaA) | | 6 | 第 4 組 / 小宥 | [HackMD](https://hackmd.io/Y2MorybBQOuFznrGCwqLow) | | 7 | 第 2 組 / Jin | [HackMD](https://hackmd.io/1HWsi5S0QnaLNEx6e9Jmig) | | 8 | 第 3 組 / Hobby | [HackMD](https://hackmd.io/@hobbyling/day9) | | 9 | 第 5 組 / Nap | [HackMD](https://hackmd.io/@8x8YzkXNSzafUSO3LZTmUw/BJmmcJT4q) | | 10 | 第 7 組 / 程翔 | [HackMD](https://hackmd.io/eH6PKHVVTXq_5ZnC2G17Yw) | | 11 | 第 8 組 / JackLee | [HackMD](https://hackmd.io/jN7tXuLjQ-uuNiyrkimeiA?view) | | 12 | 第 2 組 / Genos | [HackMD](https://hackmd.io/5A8AcAMeSSOA96WvjFH48g?view) | | 13 | 第 2 組 / peter | [HackMD](https://hackmd.io/@peterchen1024/B1IDMxpVq) | | 14 | 第 12 組 / Jimmy | [HackMD](https://hackmd.io/Syj5cnIaSr2UcAYtHtGVwg) | | 15 | 第 8 組 / Hank | [HackMD](https://hackmd.io/@TFOivyvXT-qpG6SieUTfgw/BkOkvlTEq) | | 16 | 第 3 組 / Justin | [HackMD](https://hackmd.io/r33zmu-kQLOZw3ptwIOvGA?view) | | 17 | 第 8 組 / Albert | [HackMD](https://hackmd.io/@Albertnotes/SyScjBhVq) | | 18 | 第 3 組 / Larry | [HackMD](https://hackmd.io/m12_yhRMS1SQjtVOUtkkug) | | 19 | 第 3 組 / 小葉 | [HackMD](https://hackmd.io/@FyKv37KcRSWqAO_e336w8g/BJSP4za45) | | 20 | 第 14 組|East | [HackMD](https://hackmd.io/eMopTLIDTgSQ3jdKu71H7g) | | 21 | 第 9 組 / Reynold | [HackMD](https://hackmd.io/@dL7AuQEMQ6KpCSRHaYElOA/ryEdVmTV5) | | 22 | 第 3 組 / hiYifang | [HackMD](https://hackmd.io/@gPeowpvtQX2Om6AmD-s3xw/HyTyStcV5) | | 23 | 第 3 組 / Adam Hsu | [HackMD](https://hackmd.io/@S9gD__kVTSiQUupQNn_4FQ/ryrmzmaEq) | | 24 | 第 2 組 / joe Chang | [HackMD](https://hackmd.io/uaRTw9c0TgOrADyXMmGL0Q?view#420---Mongoose-%E4%BF%AE%E6%94%B9--%E5%88%AA%E9%99%A4) | | 25 | Naiky | [HackMD @Naiky](https://hackmd.io/@UWBC7rrORiKaLSBg226mZg/rkhexU64c) | |26 |第 9 組 / konstante |[HackMD](https://hackmd.io/8_Q5VHEbQHuFVeTolh0bpg)| |27|第14組/uniza|[HackMD](https://hackmd.io/Z-mHr6hHReeC0uNuYU_Cig)| |28|第13組 / KFC|[HackMD](https://hackmd.io/JaEZI2o7SJu_CZ9SvF-r7g?view) |29|第 4 組 / 苡安|[HackMD](https://hackmd.io/hX4ekGFkRyaBvoEMqLto2Q) | 30 | 第 15 組 / Tofu | [HackMD](https://hackmd.io/yCN12UksTRiMghaGX_lhiw) | 31 | 第 2 組 / wendy.li | [HackMD](https://hackmd.io/65-h-XI2QSiE1nTr_WqVWA) | 32 | 第 1 組 / Claire | [HackMD](https://hackmd.io/sUX7rWRXTy-J_gd9lFl5gw) | 33 | 第 11 組 / Han Lai | [Codepen](https://codepen.io/x94han/pen/qBpgeoo) | 34 | 第 15 組 / CHIU | [HackMD](https://hackmd.io/NjIKmnHWTtG3BwWU5bbZmA) | 35 | 第 9 組 / 黃士桓 | [HackMD](https://hackmd.io/iEDPiHToS7iLBU2E91HQ8g) | 36 | 第 2 組 / Rikkubook | [HackMD](https://hackmd.io/ZPwTzbeDSdufMrw5k6xqDw) | 38 | 第 1 組 / Ed Huang | [HackMD](https://hackmd.io/CIBZjpCGQwewc1nI9dXUpA?view) | 39 | nick6303 | [HackMD](https://hackmd.io/AYWySlYZQYCpCkrOC_piXA) | 40 | 第 1 組 / Jerry Huang | [codepen](https://codepen.io/sun31483/pen/ZEvZKRv?editors=1010) | 41 |yolala | [HackMD](https://hackmd.io/hkY7RFLeRCWX1XyO_gpqnA) | 42 | 第 7 組 / jason06286 | [HackMD](https://hackmd.io/K0kYbX2NQFWM6QfTVbV-hQ) | 43 | 第 10 組 / 橘子 | [HackMD](https://hackmd.io/yCLUjkZaQRmLkXMT1hNkuA) | 44 | 第 5 組 / AmberCYT | [HackMD](https://hackmd.io/@amber871023/HkzRYKzB5/%2FmSRTKxtUQf2WeFEkvtDG7w) | 45 | 第 11 組 / mandy | [HackMD](https://hackmd.io/-0fTtN4aTsmypBeDukIBUg?both) | 46 | 第 16 組 / 皓皓 | [HackMD](https://hackmd.io/@cutecat8110/HJ4kecmBq) | 47 | 第 1 組 / Phoebe | [HackMD](https://hackmd.io/@Phoebe26/BJyRdqXHc) | 48 | 第 8 組 / Jordan Tseng | [HackMD](https://hackmd.io/IkH5cWXGSYC3noVHJkFf8w)| | 49 | 第 10 組 / Otis | [HackMD](https://hackmd.io/yioAQGlRRhO3N24WJ-eY_g?view)| | 50 | 第 1 組 / Emily Hsi | [HackMD](https://hackmd.io/@EmilyHsi/SkzYb7aB5)| | 51 | 第 10 組 / Butters | [HackMD](https://hackmd.io/BCiNdNDaQLO61ztMvM72EQ?view)|