owned this note
owned this note
Published
Linked with GitHub
---
tags: Node.js 直播班 - 2022 春季班
---
# 🏅 Day 4
## MongoDB 基本操作: 修改、刪除
### 修改
#### 修改單筆資料
`updateOne()` 第一個參數透過設定符合的屬性找出要修改的資料,若第一個參數帶入空物件 `{}`,則會選取全部資料的第一筆資料,第二個參數放入要修改的屬性,需先加上 `$set` 物件,並在此物件中帶入要修改的物件屬性
第二個參數可選擇帶入 `$currentDate` 屬性,會再修改資料成功後顯示出最新修改的時間
```javascript=
db.collection.updateOne(
{
example: "text"
},
{
$set: {
example: "texttext"
},
$currentDate: {
lastModified: true
}
}
)
```
#### 修改多筆資料
```javascript=
db.collection.updateMany(
{
example: /text/
},
{
$set: {
example: "texttext"
},
$currentDate: {
lastModified: true
}
}
)
```
### 刪除
#### 刪除一筆資料
只刪除一筆符合條件的資料
```javascript=
db.collection.deleteOne(
{
example: /text/
}
)
```
#### 刪除多筆資料
```javascript=
db.collection.deleteMany(
{
example: /text/
}
)
```
#### 刪除全部資料
```javascript=
db.collection.deleteMany({})
```
### 參考資源
[db.collection.updateOne() — MongoDB Manual](https://www.mongodb.com/docs/v4.4/reference/method/db.collection.updateOne/#mongodb-method-db.collection.updateOne)
[db.collection.updateMany() — MongoDB Manual](https://www.mongodb.com/docs/v4.4/reference/method/db.collection.updateMany/#mongodb-method-db.collection.updateMany)
[db.collection.deleteOne() — MongoDB Manual](https://www.mongodb.com/docs/v4.4/reference/method/db.collection.deleteOne/#mongodb-method-db.collection.deleteOne)
[db.collection.deleteMany() — MongoDB Manual](https://www.mongodb.com/docs/v4.4/reference/method/db.collection.deleteMany/#mongodb-method-db.collection.deleteMany)
[更新資料 \- updateOne、updateMany](https://courses.hexschool.com/courses/1670869/lectures/38579075)(章節影片)
[刪除資料 \- deleteOne、deleteMany](https://courses.hexschool.com/courses/1670869/lectures/38579077)(章節影片)
[尋找資料 \- find 關鍵字搜尋](https://courses.hexschool.com/courses/1670869/lectures/38579080)(章節影片)
### 題目(將答案寫在 HackMD 並提交至回報區)
若尚未做前一天的每日任務,需先建立一個 database(名稱可自定義),並建立一個 `students` collection
將以下資料新增至 `students` collection(若已做完前一天的每日任務,可繼續沿用已建立的 `students` collection)
```json
{
"studentName": "Riley Parker",
"group": "A",
"score": 83,
"isPaid": false
},
{
"studentName": "Brennan Miles",
"group": "C",
"score": 72,
"isPaid": false
},
{
"studentName": "Mia Diaz",
"group": "B",
"score": 98,
"isPaid": true
},
{
"studentName": "Caroline morris",
"group": "B",
"score": 55,
"isPaid": false
},
{
"studentName": "Beverly Stewart",
"group": "B",
"score": 60,
"isPaid": false
}
```
將答案依序列在自己的 HackMD 並將連結貼至回報區
```
範例:
1. ...
2. ...
3. ...
4. ...
```
1. 指定其中一個 `_id` ,並將該筆 document 的 `group` 改為 `D`
2. 將 `group` 為 `B` 的多筆 document 的 `isPaid` 改為 `true`
3. 將 `studentName` 包含關鍵字 `Brennan` 的 document 刪除
4. 將 `isPaid` 為 `true` 的多筆 document 刪除
回報流程
---
請同學依照下圖教學觀看解答、回報答案:
![](https://i.imgur.com/QtL8zEW.png)
回報格式如下圖,請在「回報區」使用註解回報答案 (為了統計人數,請同學依序加上「報數」)
![](https://i.imgur.com/L7kyew8.png)
<!-- 解答
1.
db.students.updateOne(
{_id:ObjectId("624b2c7b7753d6dfb817f2c5") },
{ $set: { group: "D" }}
)
2.
db.students.updateMany(
{ group: "B" },
{ $set: { isPaid: true } }
)
3.
db.students.deleteOne(
{ studentName: /Brennan/ }
)
4.
db.students.deleteMany(
{ isPaid: true }
)
-->
回報區
---
| 報數 | 組別 / 名字 | codepen / hackMD / 其他回饋 |
| ---- | -------------------- | ------------------------------------------------------------------------- |
| 1 | 第 6 組 / Wendy | [HackMD ](https://hackmd.io/@0k_MSPdgRPujozP6w_D-bA/SJx3giXNc) |
| 2 | 第 3 組 / Larry | [HackMD ](https://hackmd.io/GwWCBxGQQBWjvLKTLM1uAA) |
| 3 | 第 2 組 / Vic | [HackMD](https://hackmd.io/RPpVlJYmSAy-0ZRTFWZDdA) |
| 4 | 第 4 組 / 小宥 | [HackMD](https://hackmd.io/yMIfbXWVRvqBLH-5A_ISKw) |
| 5 | 第 3 組 / HedgehogKU | [HackMD](https://hackmd.io/525FGJsBSsSIib9RlDl2sQ) |
| 6 | 第 2 組 / peter | [HackMD](https://hackmd.io/@peterchen1024/H1SG_jmNq) |
| 7 | 第 2 組 / Genos | [HackMD](https://hackmd.io/5A8AcAMeSSOA96WvjFH48g?view) |
| 8 | 第 3 組 / Hobby | [HackMD](https://hackmd.io/@KsGqQaKHS6u944AvrPGpTA/HyKFjjmNc) |
| 9 | 第 5 組 / sihyun | [HackMD](https://hackmd.io/d6_PXgn8QoexjkWFcDyffA) |
| 10 | 第 8 組 / Hank | [HackMD](https://hackmd.io/@TFOivyvXT-qpG6SieUTfgw/BkvBC3X45) |
| 11 | 第 2 組 / Jin | [HackMD](https://hackmd.io/YdOQavm6Tzq1F4CK4rtMsA) |
| 12 | 第 14 組 / East | [HackMD](https://hackmd.io/n-ar1St5R9ahUo8vD6l_hg) |
| 13 | 第 7 組 / 程翔 | [HackMD](https://hackmd.io/wQgVZLo6QWelplY3Z_mf7w) |
| 14 | 0 / Aya | [HackMD](https://hackmd.io/@NoName21/W1D4-MongoSH) |
| 15 | 第 3 組 / hiYifang | [HackMD](https://hackmd.io/@gPeowpvtQX2Om6AmD-s3xw/rJGVhWXEq) |
| 16 | 第 1 組 / Phoebe | [HackMD](https://hackmd.io/@Phoebe26/S1tUYx4Vc) |
| 16 | 第 4 組 / Mischa | [HackMD_mischa_day4](https://hackmd.io/@93vGUSybS_OZz3597y4GLg/Bk87CxV49) |
| 18 | Naiky | [HackMD @Naiky](https://hackmd.io/@UWBC7rrORiKaLSBg226mZg/ryIm7MV4c) |
| 19 | 第 9 組 / konstante | [HackMD](https://hackmd.io/63RmQWPESB259vYj28FbpA?view) |
| 20 | 第 4 組 / 苡安 | [HackMD](https://hackmd.io/dBiM2_o-SnKwCbqOTCKdIA) |
| 21 | 第 6 組 / Ruta | [HackMD](https://hackmd.io/sr6shVTQSauDSRKIT2hbvA?view) |
| 22 | 第 1 組 / Claire | [HackMD](https://hackmd.io/WO9ThSWeT3-dqpMLfKJaAw) |
| 23 | 第 2 組 / wendy.li | [HackMd](https://hackmd.io/STO2AsLBSuSXm0obSLksXg)
| 24 | 第 11 組 / Han Lai | [HackMd](https://codepen.io/x94han/pen/MWrqPza?editors=0010)
| 25 | 第 3 組 / Adam Hsu | [HackMD](https://hackmd.io/@S9gD__kVTSiQUupQNn_4FQ/ByqPsLE4c) |
| 26 | 第 15 組 / Chiu | [HackMD](https://hackmd.io/QY0IjSFlSsuOm5wm2aRFbA) |
| 27 | 第 9 組 / 黃士桓 | [HackMD](https://hackmd.io/@huan5678/B1ivCySVc) |
| 28 | 第 4 組 / sihle | [HackMD](https://hackmd.io/@bugbug777/ByHyXZBN5) |
| 29 | 第 3 組 / Justin | [HackMD](https://hackmd.io/GVJj7SIgTiiuOowsIRzfuQ) |
| 30 | 第 15 組 / 皓皓 | [HackMD](https://hackmd.io/@cutecat8110/BkkziWrV9) |
| 31 | 第 14 組 / 涼二 | [HackMD](https://hackmd.io/@Ryoni/SkknCZS4q) |
| 32 | 第 3 組 / 小葉 | [HackMD](https://hackmd.io/@FyKv37KcRSWqAO_e336w8g/BJ8xMTTXq) |
| 33 | 第 1 組 / Jerry Huang | [HackMD](https://hackmd.io/Mhr3ypeTRdSAS6SlTfLrWw) |
| 34 | 第 9 組 / Reynold | [HackMD](https://hackmd.io/@gJYLeiWDSIC-s4tMTVgPWw/SJ0Lenm4q)
| 35 | 第 5 組 / Hazel Wu | [HackMD @ Hazel](https://hackmd.io/yc5W1zsXS8OABJJCJKmWCw?edit)
| 36 | 第 1 組 / Ed Huang | [HackMD](https://hackmd.io/WbLhznKEQHmyy0q6cBHVjw)
| 37 | 第 6 組 / 謦麟 | [HackMD](https://hackmd.io/amVE0lbOQqetcQ2WOqiM2Q?view)
| 38 | 第 2 組 / Rikkubook | [HackMD](https://hackmd.io/an517f8OQFC2ctG7wJFl5Q)
| 39 | 第 2 組 / joe.chang | [HackMD](https://hackmd.io/wheT_HblQveJ4q9geCWFig)
| 40 | 第 14 組 /Uniza |[HackMd](https://hackmd.io/8SPSmyIQSJig7bITyec0XA)|
| 41 | nick6303 |[HackMD](https://hackmd.io/kxGJmHwcQs-0mdFspDkAYA) |
| 42 | 第 6 組 / 馨云 | [HackMD](https://hackmd.io/@ceLocii_Tk-5B0mgomZ5Xw/SJNYzlw4q)
| 43 | 第11 組 / mandy | [HackMD](https://hackmd.io/ozh2zOCtT82M9_qtD9abCw?both)
| 44 | yolala | [HackMD](https://hackmd.io/dGk9R0FdSUKh-5WIwtq8Xw)
| 45 | 第 1 組 / snow | [HackMD](https://hackmd.io/@snowsuika/BJJ6wldV5)
| 46 | 第 10 組 / Otis | [HackMD](https://hackmd.io/9LFR2dqxRdG1qCPbisjGxg?view)
| 47 | 第 5 組 / Nap | [HackMD](https://hackmd.io/@8x8YzkXNSzafUSO3LZTmUw/H1VXRXtEc)
| 48 | 第 15 組 / Tofu | [HackMD](https://hackmd.io/4G_m7rjPSda-3LSrvBFJtA) |
| 49 | 第 12 組 / Jimmy | [HackMD](https://hackmd.io/MWCGlQzzQ2yxmkBnUgD7VA) |
| 50 | 第 10 組 / 橘子 | [HackMD](https://hackmd.io/ku3qCriRT9W0y14smHgBQg?view) |
| 51 | 第 10 組 / Butters | [HackMD](https://hackmd.io/beVwDzIIRUqaR1PrKCF2wA?view) |
| 52 | 第 8 組 / Jordan Tseng | [HackMD](https://hackmd.io/blGfg13hR5yQWqnkHVVVWw?view) |
| 53 | 第 1 組 / Emily Hsi | [HackMD](https://hackmd.io/@EmilyHsi/rJWrTioNc) |
| 54 | 第 8 組 / Albert | [HackMD](https://hackmd.io/@Albertnotes/S1J_HInE9) |
| 55 | 第 7 組 / jason06286 | [HackMD](https://hackmd.io/IQVie9WdTNmvAS3mTEjDNQ) |
| 56 | 第 5 組 / AmberCYT | [HackMD](https://hackmd.io/@amber871023/HkzRYKzB5/%2FV1-eejEnQc687YQKwFCAxg)|
| 56 | 第 7 組 / TracyChien | [HackMD](https://hackmd.io/@TracyChien/HySz7mtr5)|
| 57 | 第 12 組 / Sylvia-H | [HackMD](https://hackmd.io/GS0UbGmtRIWU6t4fbwG6tA)|
| 58 | 第 14 組 / 皮皮 | [HackMD](https://hackmd.io/xg5Cu5TwSxulq2ZRwtZUIg)|