# 🏅 Day 9 - Mongoose 修改/刪除
### Mongoose 修改
#### findByIdAndUpdate
修改單筆 ID 資料 `Model.findByIdAndUpdate(id, update)`
寫法為:
```javascript
const Order = mongoose.model('orderCollection', orderSchema);
// 修改特定 id 的資料
Order.findByIdAndUpdate('621e45063ff3c8af575a7498', {
room: '海景雙人房'
})
```
> 修改 `id: 621e45063ff3c8af575a7498` 的 `room` 欄位資料為 `海景雙人房`
#### updateOne()
修改特定條件的第一筆資料 `Model.updateOne(filter, update)`
```javascript
const Order = mongoose.model('orderCollection', orderSchema);
// 修改特定條件的第一筆資料
Order.updateOne(
{
user: 'Tom'
},
{
isPaid: true
}
)
```
> 修改 `user` 是 `Tom` 的第一筆資料的 `isPaid` 資料為 `true`
也可使用 **updateMany()** 修改多筆資料
### Mongoose 刪除
#### deleteMany()
```javascript
// 刪除所有 orderCollection 中的資料
Order.deleteMany({})
// 刪除符合特定條件的所有資料
Order.deleteMany({ isPaid: true }) // 刪除所有 isPaid 為 true 的資料
```
#### findByIdAndDelete()
```javascript
// 刪除特定 ID 的資料
Order.findByIdAndDelete('621e45063ff3c8af575a7498')
```
> 刪除 id 為 `621e45063ff3c8af575a7498` 的資料
### 參考資源
- [Mongoose: Model](https://mongoosejs.com/docs/api/model.html)
- 課程影音「Mongoose NPM 教學」
題目
---
延續前一天的題目 Room Model,依照下方題目敘述寫出相關操作指令
1. 刪除所有 roomCollection 的資料
2. 新增下方資料
```
{
room: '單人房',
price: 1800,
max: 2,
bathroom: false,
amenities: ['牙刷']
},
{
room: '雙人房',
price: 2800,
max: 2,
bathroom: true,
amenities: ['洗髮精', '沐浴乳', '牙刷']
},
{
room: '四人房',
price: 3600,
max: 4,
bathroom: true,
amenities: ['洗髮精', '沐浴乳', '牙刷']
}
```
3. 將單人房(room: '單人房')的 price 資料調整為 1500(updateOne)
4. 將最後一筆資料的 max 改為 6(使用 findByIdAndUpdate 指定最後一筆的 `_id`)
5. 刪除所有 bathroom 是 true 的資料(deleteMany)
6. 刪除第一筆資料(使用 findByIdAndDelete 指定第一筆的 `_id`)
## 回報流程
將答案寫在 CodePen 並複製 CodePen 連結貼至底下回報就算完成了喔!
解答位置請參考下圖(需打開程式碼的部分觀看)
![](https://i.imgur.com/vftL5i0.png)
<!-- 解答:
1. Room.deleteMany({})
2. Room.create([{
room: '單人房',
price: 1800,
max: 2,
bathroom: false,
amenities: ['牙刷']
},
{
room: '雙人房',
price: 2800,
max: 2,
bathroom: true,
amenities: ['洗髮精', '沐浴乳', '牙刷']
},
{
room: '四人房',
price: 3600,
max: 4,
bathroom: true,
amenities: ['洗髮精', '沐浴乳', '牙刷']
}])
3. Room.updateOne({
room: '單人房'
}, {
price: 1500
})
4. Room.findByIdAndUpdate('最後一筆的 id', {
max: 6
})
5. Room.deleteMany({ bathroom: true })
6. Room.findByIdAndDelete('第一筆的 id')
-->
回報區
---
<!--
將答案貼至下方表格內,格式:
| Discord 暱稱 | [CodePen](連結) |
-->
| Discord | CodePen / 答案 |
|:-------------:|:-----------------:|
| xxx | [CodePen]() |
| 苡安 | [hackmd](https://hackmd.io/@L7K9-66lSeagS28AP0_GjQ/rkkHBLilC) |
| mei | [CodePen](https://codepen.io/l_umei/pen/poBObBX) |
| Jean | [HackMD](https://hackmd.io/7F6ReFsHTEOkqaRnXR8OXA?view) |
| Aida | [CodePen](https://codepen.io/ada23410/pen/JjVaRbJ?editors=0010) |
| shuantt | [CodePen](https://codepen.io/th-tseng/pen/VwNGKQd) |
| 群嘉 | [CodePen](https://codepen.io/efzdamnp-the-lessful/pen/bGJxBzR?editors=0010)|
| Chia Pin | [CodePen](https://codepen.io/joker-cat/pen/jORvyzQ) |
| wei | [CodePen](https://hackmd.io/@xu7yoa5cSsqaron7h9XhUw/rkB43qoeA) |
| jenny7532 | [CodePen](https://codepen.io/wei-chen-wu/pen/qBwMrZj) |
| Hank | [CodePen](https://codepen.io/tw1720/pen/vYMzydY) |
| 羽 | [CodePen](https://codepen.io/lingling-Syu/pen/MWRqoEx?editors=0010) |
| zaoannihao | [CodePen](https://codepen.io/ckhwdvrx-the-solid/pen/qBwMXWr) |
|cho|[CodePen](https://codepen.io/cho195/pen/ZEZMXBa)|
|tung030374|[CodePen](https://codepen.io/tung__u/pen/mdgGqBm?editors=1010)|
|Otis|[CodePen](https://codepen.io/humming74/pen/GRLXzQg?editors=1010)|
|Benson|[CodePen](https://codepen.io/nosneb83/pen/jORvmbV)|
| 2魚 | [CodePen](https://codepen.io/ijrekmsn-the-sans/pen/poBOYpQ) |
| Fabio20 | [CodePen](https://codepen.io/fabio7621/pen/LYvJavb) |
| Lobinda | [CodePen](https://codepen.io/Lobinda/pen/ExJeMMj) |
| ej_chuang | [CodePen](https://codepen.io/EJChuang/pen/rNbqVwp) |
| william_hsu | [CodePen](https://codepen.io/william8815/pen/bGJmdjw) |
| Theodore | [CodePen](https://codepen.io/GustavoFringgg/pen/YzMJydZ?editors=0010) |
| runweiting | [CodePen](https://codepen.io/weiting14/pen/MWRPmLr) |
| Henry | [CodePen](https://codepen.io/hekman1122/pen/wvZYxKg?editors=0010) |
| ellallu0903 | [CodePen](https://codepen.io/ellallu0903/pen/MWRzWjG) |
| Thomas | [CodePen](https://codepen.io/ThomasYeh/pen/xxeQEPO) |
| Tiya | [CodePen](https://codepen.io/Tiya_blank/pen/JjVZaWv) |
| Ciel | [CodePen](https://codepen.io/nycteachen/pen/poBQYXZ) |
| 瑀君 | [CodePen](https://codepen.io/yennnnn/pen/gOyZgZw)|
| yoshidc | [CodePen](https://codepen.io/yoshiyyc/pen/abxPwRX)|
| albertyang3576 | [CodePen](https://codepen.io/albertyang3576/pen/YzMMGby?editors=0010)|