MongoDB - 創建集合:初學者指南

你好啊,未來的數據庫大師!今天,我們將踏上一段令人興奮的旅程,進入 MongoDB 的世界,並學習如何創建集合。別擔心如果你是編程新手——我將成為你的友好導遊,一步步解釋所有內容。所以,來一杯咖啡(或者茶,如果你喜歡的話),我們一起來深入研究!

MongoDB - Create Collection

MongoDB 是什麼?

在我們開始創建集合之前,讓我們花一分鐘時間來了解 MongoDB 是什麼。想像你有一個大盒子,你可以在裡面存放各種各樣的東西——這就是 MongoDB 的本質,但它是用於數據的。它是一種數據庫,允許你以靈活的文檔格式存儲和管理信息。

什麼是集合?

在 MongoDB 中,一個集合就像一個文件夾,你可以在其中存放相關的文檔。如果你熟悉傳統數據庫,你可以將集合想像成與表類似。然而,MongoDB 的集合更加靈活——它們不需要固定的結構,這意味著你可以在同一個集合中存儲不同類型的文檔。

createCollection() 方法

現在,讓我們來到令人興奮的部分——創建集合!MongoDB 為我們提供了一個方便的方法,叫做 createCollection(),用於完成這項任務。這就像有一根魔法棒,可以通過一個簡單的命令為我們的數據創建新的文件夾。

基本語法

下面是創建集合的基本語法:

db.createCollection(name, options)

讓我們分解一下:

  • db 指的是你正在操作的當前數據庫。
  • createCollection 是我們使用的方法。
  • name 是一個字符串,用於指定你想要為新集合命名的名稱。
  • options 是一個可選參數,你可以在其中為你的集合設置多種配置。

創建一個簡單的集合

讓我們從一個基本示例開始。想像我們正在構建一個圖書館數據庫,並想要為書籍創建一個集合:

db.createCollection("books")

這個命令在你的當前數據庫中創建一個名為 "books" 的新集合。簡單吧?這就像告訴 MongoDB,“嘿,我需要一個用於我的書的新文件夾!”

創建一個帶有選項的集合

現在,讓我們來得更加高級一點。MongoDB 允許我們在創建集合時設置多種選項。這裡有一個示例:

db.createCollection("readers", {
capped: true,
size: 5242880,
max: 5000
})

在這個示例中,我們正在創建一個名為 "readers" 的集合,並設置了一些特定選項:

  • capped: true 意味著這個集合有固定的大小。
  • size: 5242880 將集合的最大大小設置為 5 兆字节。
  • max: 5000 將集合限制為最多 5000 個文檔。

想像這就像創建一個特殊的書架,只能夠容納一定數量的書籍或者有重量限制。

常用的選項

讓我們看看創建集合時最常使用的選項:

選項 描述
capped 布爾值。如果為 true,則創建一個固定大小的集合。
size 數字。為固定大小集合指定最大大小(以字节為單位)。
max 數字。指定固定大小集合中允許的最大文檔數量。
validator 文檔。指定集合的驗證規則。
validationLevel 字符串。決定 MongoDB 應用驗證規則的嚴格程度。
validationAction 字符串。決定 MongoDB 在遇到無效文檔時應該報錯還是僅發出警告。

實際示例

示例 1:為日誌創建一個固定大小的集合

想像你正在構建一個系統,需要記錄最新的日誌,但你不想讓它無限增長:

db.createCollection("systemLogs", {
capped: true,
size: 10485760,  // 10 MB
max: 10000
})

這個命令創建一個用於存儲系統日誌的集合,但它只會保留最近的條目,直到達到 10 MB 或 10000 個文檔,以先到者為準。這就像有一個筆記本,自動擦除舊筆記以為新筆記騰出空間!

示例 2:為用戶個人資料創建一個驗證的集合

現在,讓我們說我們想要確保數據庫中的所有用戶個人資料都有名稱和有效的電子郵件地址:

db.createCollection("userProfiles", {
validator: {
$jsonSchema: {
bsonType: "object",
required: ["name", "email"],
properties: {
name: {
bsonType: "string",
description: "必須是字符串且為必填項"
},
email: {
bsonType: "string",
pattern: "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$",
description: "必須是有效的電子郵件地址且為必填項"
}
}
}
}
})

這個示例創建了一個帶有驗證器的集合,確保每個文檔都有名稱(必須是字符串)和有效的電子郵件地址。這就像有一個嚴格的圖書管理員,除非你正確填寫了你的圖書卡,否則他不會讓你借書!

檢查集合是否存在

在創建新集合之前,檢查它是否已經存在通常是一個好主意。下面是如何操作的:

if (!db.getCollectionNames().includes("myNewCollection")) {
db.createCollection("myNewCollection")
print("集合創建成功!")
} else {
print("集合已存在!")
}

這段腚本檢查 "myNewCollection" 是否存在。如果不存在,它創建集合並打印成功信息。如果存在,它只是告訴你。這就像在創建一個新文件夾之前檢查你是否已經有一個特定主題的文件夾!

結論

恭喜你!你剛剛學會了 MongoDB 中創建集合的基本知識。記住,集合是數據的靈活容器,createCollection() 方法是你的工具,用於按照你需要的方式設置它們。

隨著你繼續在 MongoDB 的旅程上進行探索,你會發現更多定制和優化集合的方式。但現在,給自己一個鼓勵——你已經成為 MongoDB 大師的路上!

繼續練習,保持好奇心,並且快樂編程!記住,在數據庫的世界裡,你是數據的家——它的舒適性、效率和需求都在你手中!

Credits: Image by storyset