iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 4
3
AI & Data

從入門到精通 MongoDB系列 第 4

Day04: MongoDB 的 CRUD(2) - Insert & Delete

  • 分享至 

  • xImage
  •  

上一篇介紹了 MongoDB 的資料庫概念及在 mongo Shell 中的一些基本操作指令。今天開始要正式進入這單元的重點:在 MongoDB 中執行 CRUD 操作,今天先跟大家介紹其中兩項:資料的 新增 Insert刪除 Delete

新增資料 Insert

在上一篇曾提到我們可以使用 use <db_name> 指令來指定或新增 database,接著可以在 database 中透過以下兩種方法在 collection 中新增 document 形式的資料:

InsertOne()

指令:db.employee.insertOne(document, options)

我們可以透過上述指令在指定 database 中的 employee 這個 collection 新增 document 形式的資料:

若資料新增成功,則會回傳兩個值:

  • acknowledged:true 表示新增成功
  • insertedId:新增的 document 的 _id

除了新增完整的 document 資料,我們也可以直接新增任何 field-value 形式的資料,例如在 employee 這個 collection 中直接新增 {"a": 1, "b": 2}:db.employee.insertOne({"a": 1, "b": 2})
可以發現我們所新增的資料第一個 field 都是預設的 "_id",系統會自動幫每個 document 配置一個不會重複的 "_id "。如果我們想要自己設定這個 "_id",也可以透過以下方法來指定新增資料的 "_id":db.employee.insertOne({"a": 3, "b": 4, "_id": 1})
可以在上圖結果中發現我們剛新增的資料,其 "_id" 是我們所指定的 1。

InsertMany()

指令:db.employee.insertMany(documents, options)
如下圖,我們可以直接一次新增多筆 documents 資料:

我們一樣可以在回傳的結果中看到:

  • acknowledged 為 true 表示新增成功
  • 新增兩個 documents 所以有兩個 insertedIds

檢查 Collection 資料狀況

當我們在 collection 中新增資料或進行其他操作後,我們會想要去檢查執行的結果是否正確,這時我們可以透過以下指令來檢查 collection 的資料狀況

  • db.getCollectionNames():列出在當前 database 中的 collection

  • db.employee.find():顯示 collection 的所有 documents

  • db.employee.find().pretty():以 BSON 縮排格式呈現 collection 的所有 documents

  • db.employee.findOne():只顯示 collection 的第一個 document


刪除資料 Delete

之前有提到說 mongo Shell 是一個用來操作 MongoDB 的 JavaScript 互動式介面,因此我們的這些操作指令其實都是 JavaScript function,如下圖我們可以看到 deleteOne 是一個 JavaScript 的函式:

deleteOne()

指令:deleteOne(filter, options)

  • 刪除 "_id": 1 這個 document:deleteOne({"_id": 1})
  • 刪除 "a": 1 這個 document:deleteOne({"a": 1})

deleteMany()

指令:deleteMany(filters, options)

  1. 我們先新增兩筆資料 {"a": 1, "b: 3"} 及 {"a": 1, "b": 4}

  2. 接著刪除 "a": 1 的 documents:deleteMany({"a": 1})

    • 可以發現我們上面新增的兩筆資料都含有 "a": 1,因此我們使用 deleteMany() 會把所有符合條件的資料都刪除

今天跟大家介紹在 mongoDB 新增資料與刪除資料的方法,下一篇會繼續和大家介紹查詢資料 Find 及更新資料 Update 的方法。


上一篇
Day03: MongoDB 的 CRUD(1) - 資料庫基本操作
下一篇
Day05: MongoDB 的 CRUD(3) - Find & Update
系列文
從入門到精通 MongoDB26
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言