(3)被迫吃芒果的前端工程師 - MongoDB CRUD 之 Create

前言

前面認識了基本常見的 MongoDB Basic 操作之後,接下來當然就是要認識 CRUD 的部分,因此我們還是會繼續在終端機上面操作。

MongoDB CRUD

接下來聊聊 CRUD 的部分,雖然 CRUD 算是已經非常常見的,可是還是解釋一下各自單字所代表的意思

  • C = Create
    • 新增、建立或是創建
  • R = Read
    • 讀取、查詢
  • U = Update
    • 更新
  • D = Delete
    • 刪除

準備開始往下閱讀之前,建議你一樣先進入到 MongoDB 介面,然後輸入 use example,因為接下來都會在 example 中做 CRUD 的練習與動作,如果你忘記怎麼進去的話,我也在提供一次流程

1
2
3
mongo
use example
db // 確定目前是在 exampleDB 底下操作

Create

雖然 C 代表著 Create 的意思,雖然 Create 代表著新增、建立或是創建的意思,但我們實際上使用的語法則是 Insertion。

而 MongoDb 有兩種新增語法的方式

  • db.collection.insertOne()
  • db.collection.insertMany()

insertOne 語法非常顧名思義,就是新增一筆的意思。

前面章節有提到 collection 代表的意思類似於 SQL 的 Tables,因此我們如果今天要新增的資料是一個使用者的話,那麼就要這樣輸入才對

1
db.users.insertOne()

那…為什麼是這樣輸入呢?讓我畫一張圖理解一下 MongoDB 的架構,首先先讓我們看一下基本的 db 架構

db

而我們通常輸入 db 就會直接顯示當前資料庫的位置,因此起手一定會是先 db,後面第二個則是 collection,就必須明確的說明是哪一個集合(集合),例如我現在要新增一筆資料到 Users 集合內

collection

因此若要新增一個使用者的集合就必須寫 db.users.insertOnedb.users.insertMany

透過上面那張圖我們也可以理解到一件事情,如果你是想新增資料到 news 的集合的話,那麼就會是 db.news.insertOne

了解上面之後,讓我們拉回剛剛的兩個語法,也就是 db.collection.insertOne()db.collection.insertMany()

insertOneinsertMany 有什麼差異呢?簡單來講就是一個一次只能新增一筆,另一個則是可以批次新增,

首先先讓我們使用單一新增將一個使用者資料新增到資料庫的 users 集合

1
2
3
4
5
db.users.insertOne({
"name": "Ray",
"age": 28,
"status": false
})

那麼當你輸入之後如果有新增成功 MongoDB 會回傳給你訊息告訴你有成功,然後這個 document ID 是什麼

insertOne

1
2
3
4
{
"acknowledged" : true,
"insertedId" : ObjectId("61ec1b832fecb74092ce1462")
}

如果你希望新增多筆資料的話,則是使用 insertMany,而它會是一個陣列物件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
db.users.insertMany([
{
"name": "Jack",
"age": 25,
"status": false
},
{
"name": "Roy",
"age": 25,
"status": false
},
{
"name": "Mark",
"age": 25,
"status": false
},
])

新增成功時 MongoDB 一樣會回傳結果給你,但你會發現 insertedId 也會變成一個陣列

insertMany

1
2
3
4
5
6
7
8
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("61ec1cf32fecb74092ce1463"),
ObjectId("61ec1cf32fecb74092ce1464"),
ObjectId("61ec1cf32fecb74092ce1465")
]
}

那麼現在資料都已經被新增到 users 的 Collection 中,這些資料都稱之為 document,屬性與值在 MongoDB 中分別代表著 Field: value (字段與值),如果不好記的話,也可以想像成物件的 Key: value

MongoDB 架構

而這就是整體的 MongoDB 架構。

Liker 讚賞

這篇文章如果對你有幫助,你可以花 30 秒登入 LikeCoin 並點擊下方拍手按鈕(最多五下)免費支持與牡蠣鼓勵我。
或者你也可以考慮請我喝一杯咖啡

Google AD

撰寫一篇文章其實真的很花時間,如果你願意「關閉 Adblock (廣告阻擋器)」來支持我的話,我會非常感謝你 ヽ(・∀・)ノ