MongoDB集合操作:創建、刪除與數據插入

一、什麼是MongoDB集合?

在MongoDB中,集合(Collection) 相當於關係型數據庫中的“表”,但它存儲的是文檔(Document)(類似JSON的結構)。與表不同的是,集合中的文檔不需要有固定的字段結構,不同文檔可以包含不同的字段,非常靈活。

二、創建集合

創建集合有兩種方式:顯式創建(通過命令手動創建)和隱式創建(插入數據時自動創建)。

1. 顯式創建集合(createCollection())

使用 db.createCollection(集合名) 命令可以手動創建集合。例如,創建一個名爲 students 的集合:

// 在MongoDB Shell中執行
db.createCollection("students")
  • 如果執行成功,會返回 { "ok" : 1 } 表示集合創建成功。
  • 可選參數:可以設置集合的屬性,比如 capped(固定大小集合,舊數據自動刪除)、size(固定大小字節數)等。例如創建一個固定大小的日誌集合:
  db.createCollection("logs", { capped: true, size: 10000 })

(注:capped: true 表示啓用固定大小,size: 10000 表示最大10KB,超出會自動覆蓋舊數據)

2. 隱式創建集合(插入數據時自動創建)

如果插入數據時集合不存在,MongoDB會自動創建集合。例如,直接插入一個文檔到不存在的 students 集合:

db.students.insertOne({ name: "Alice", age: 20 })

此時 students 集合會被自動創建,且插入的文檔會被存儲進去。

三、刪除集合(drop())

刪除集合使用 db.集合名.drop() 命令,執行後集合及其所有數據會被永久刪除(無回收站),需謹慎操作!

語法

db.集合名.drop()
  • 如果集合存在且刪除成功,返回 true;如果集合不存在或刪除失敗,返回 false

示例

// 刪除名爲students的集合
db.students.drop() // 成功則返回true,否則返回false

四、數據插入(insertOne()/insertMany())

MongoDB通過 insertOne()(單文檔)和 insertMany()(多文檔)插入數據,文檔格式爲 鍵值對(類似JSON),自動生成唯一 _id 字段(可自定義,但建議由MongoDB自動生成)。

1. 插入單個文檔(insertOne())

語法:

db.集合名.insertOne(文檔對象)
  • 示例:插入一個學生信息到 students 集合:
  db.students.insertOne({
    name: "Bob",
    age: 22,
    major: "Computer Science",
    hobbies: ["reading", "coding"] // 數組類型
  })
  • 返回結果
  {
    acknowledged: true,
    insertedId: ObjectId("60d21b4667d0d8992e610c85") // MongoDB自動生成的唯一ID
  }
2. 插入多個文檔(insertMany())

語法:

db.集合名.insertMany([文檔1, 文檔2, ...])
  • 示例:插入兩個學生信息:
  db.students.insertMany([
    { name: "Charlie", age: 21, major: "Mathematics" },
    { name: "Diana", age: 23, major: "Physics", isHonorStudent: true } // 可添加新字段
  ])
  • 返回結果
  {
    acknowledged: true,
    insertedIds: [
      ObjectId("60d21b4667d0d8992e610c86"),
      ObjectId("60d21b4667d0d8992e610c87")
    ]
  }

五、注意事項

  1. 集合名稱:區分大小寫,且不能包含特殊字符(除 $. 等合法符號外)。
  2. 數據類型:文檔中字段類型靈活,字符串需加引號(如 name: "Bob"),數字直接寫(如 age: 20),日期需用 new Date() 表示(如 birth: new Date("2000-01-01"))。
  3. 唯一性insertOne()/insertMany() 插入的數據會自動生成 _id,確保同一集合內文檔唯一(即使字段重複也不影響)。
  4. 刪除不可逆:執行 drop() 操作後數據無法恢復,建議操作前備份或確認集合存在。

總結

  • 創建集合:顯式用 createCollection(),隱式通過插入數據自動創建。
  • 刪除集合:用 drop(),永久刪除且無恢復機制。
  • 插入數據:單文檔用 insertOne(),多文檔用 insertMany(),文檔格式爲鍵值對。

通過以上操作,你已經掌握了MongoDB中最基礎的集合管理和數據插入方法,接下來可以嘗試在MongoDB Shell或可視化工具(如Robo 3T)中實踐操作,加深理解!

小夜