MongoDB - 插入文件

你好,未來的數據庫巫師們!今天,我們將要進入 MongoDB 的神奇世界,並學習如何將文件插入我們的集合中。別擔心如果你是編程新手——我會耐心地指導你每一步,就像一位智慧的古老巫師在教導年輕的學徒一樣。所以,拿起你的魔杖(或鍵盤)我們開始吧!

MongoDB - Insert Document

了解 MongoDB 中的文件

在我們跳入插入文件的步驟之前,讓我們快速回顧一下 MongoDB 中的文件是什麼。把文件想像成一張特殊的羊皮紙,它保存著信息。在麻瓜(非魔法)世界中,我們稱這些信息為“數據”。每個文件就像你魔法書中的一個獨特條目,包含關於特定物品或實體的各種細節。

例如,一個關於魔法生物的文件可能會像這樣:

{
"name": "Dragon",
"type": "噴火",
"dangerLevel": 10,
"abilities": ["飛行", "噴火", "藏寶"]
}

現在我們已經了解了文件是什麼,讓我們學習如何將這些神奇的條目添加到 MongoDB 的集合中!

insert() 方法

insert() 方法就像是 MongoDB 的“飛翔咒”——它是將文件添加到集合中的基本咒語。然而,就像“飛翔咒”被更專業的漂浮咒語所取代一樣,insert() 方法也被更精確的方法所取代。但別擔心,年輕的巫師們,我會教你們現代的方法!

insertOne() 方法

當你想將單個文件添加到集合中時,insertOne() 方法非常適合。這就像小心翼翼地把一個珍貴的文物放入你的魔法保險庫。

語法

db.collection.insertOne(document)

示例

讓我們將一名新學生添加到我們的“霍格沃茲”集合中:

db.hogwarts.insertOne({
name: "Harry Potter",
house: "格蘭芬多",
year: 1,
subjects: ["藥水學", "對抗黑魔法防禦術", "魔法"]
})

運行這個咒語(我的意思是,代碼)後,MongoDB 將把這個文件添加到我們的“霍格沃茲”集合中。就是這麼簡單!

了解結果

當你施展 insertOne() 咒語時,MongoDB 會給你反饋,而不是默默地添加文件。這就像一個神奇的鏡子顯示你咒語的結果。以下是你可能看到的:

{
"acknowledged": true,
"insertedId": ObjectId("60d5ec9d7c213e8456b1b2d4")
}
  • acknowledged:這告訴你是否插入成功。true 意味著“是的,你的咒語奏效了!”
  • insertedId:這是插入文件的唯一標識符。把它當作文件的神奇簽名。

insertMany() 方法

現在,如果你想要一次性添加多個文件呢?這時 insertMany() 方法就派上用場了。這就像對一群物品施展群體漂浮咒!

語法

db.collection.insertMany([document1, document2, ...])

示例

讓我們將多名學生添加到我們的“霍格沃茲”集合中:

db.hogwarts.insertMany([
{
name: "Hermione Granger",
house: "格蘭芬多",
year: 1,
subjects: ["占卜學", "麻瓜研究", "古代符號"]
},
{
name: "Ron Weasley",
house: "格蘭芬多",
year: 1,
subjects: ["預言學", "魔法生物照顧"]
},
{
name: "Draco Malfoy",
house: "斯萊特林",
year: 1,
subjects: ["藥水學", "黑魔法"]
}
])

這個咒語將一次性把所有三名學生添加到我們的集合中。效率是不是很高?

了解結果

施展這個強大的咒語後,MongoDB 將再次提供給你反饋:

{
"acknowledged": true,
"insertedIds": [
ObjectId("60d5ec9d7c213e8456b1b2d5"),
ObjectId("60d5ec9d7c213e8456b1b2d6"),
ObjectId("60d5ec9d7c213e8456b1b2d7")
]
}
  • acknowledged:再次確認你的咒語是否成功。
  • insertedIds:這是一個數組,包含每個插入文件的唯一標識符。

實用技巧和秘訣

  1. 拼寫檢查(數據驗證):在插入文件之前,總是雙重檢查你的文件。拼錯的字段名可能會導致意外的結果,就像發音不正確的咒語一樣!

  2. 重複鍵:如果你嘗試插入一個與現有文件相同 _id 的文件,MongoDB 將會報錯。這就像試圖讓兩名學生使用同樣的魔法簽名——這是不可能的!

  3. 批量插入:當使用 insertMany() 時,如果有一個文件因為(例如重複鍵)失敗,操作將停止。但是,在錯誤之前插入的任何文件都會保留在集合中。這就像如果一名學生未能通過入學考試——其他通過的學生仍然可以進入霍格沃茲!

  4. 性能考慮:單個插入文件可能比批量插入慢。如果你有許多文件要插入,考慮使用 insertMany() 而不是多個 insertOne() 調用。

插入方法的總結

這裡是我們學過的插入方法的快速參考表:

方法 描述 使用場景
insertOne() 插入一個文件 當你需要添加一個文件時
insertMany() 插入多個文件 當你有一批文件要添加時

記住,年輕的巫師們,熟能生巧。不要害怕在你的 MongoDB 沙盒中實驗這些方法。在你知曉之前,你將會以一個經驗豐富的數據庫巫師的優雅插入文件!

至於這裡——你對 MongoDB 文件插入藝術的第一課。記住,能力越大,責任越大。謹慎使用這些咒語,願你的數據庫永遠有組織且高效!

Credits: Image by storyset