上一篇介紹了 MongoDB 的資料庫概念及在 mongo Shell 中的一些基本操作指令。今天開始要正式進入這單元的重點:在 MongoDB 中執行 CRUD 操作,今天先跟大家介紹其中兩項:資料的 新增 Insert 與 刪除 Delete。
在上一篇曾提到我們可以使用 use <db_name>
指令來指定或新增 database,接著可以在 database 中透過以下兩種方法在 collection 中新增 document 形式的資料:
指令:db.employee.insertOne(document, options)
我們可以透過上述指令在指定 database 中的 employee 這個 collection 新增 document 形式的資料:
若資料新增成功,則會回傳兩個值:
除了新增完整的 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。
指令:db.employee.insertMany(documents, options)
如下圖,我們可以直接一次新增多筆 documents 資料:
我們一樣可以在回傳的結果中看到:
當我們在 collection 中新增資料或進行其他操作後,我們會想要去檢查執行的結果是否正確,這時我們可以透過以下指令來檢查 collection 的資料狀況
db.getCollectionNames()
:列出在當前 database 中的 collection
db.employee.find()
:顯示 collection 的所有 documents
db.employee.find().pretty()
:以 BSON 縮排格式呈現 collection 的所有 documents
db.employee.findOne()
:只顯示 collection 的第一個 document
之前有提到說 mongo Shell 是一個用來操作 MongoDB 的 JavaScript 互動式介面,因此我們的這些操作指令其實都是 JavaScript function,如下圖我們可以看到 deleteOne 是一個 JavaScript 的函式:
指令:deleteOne(filter, options)
deleteOne({"_id": 1})
deleteOne({"a": 1})
指令:deleteMany(filters, options)
我們先新增兩筆資料 {"a": 1, "b: 3"} 及 {"a": 1, "b": 4}
接著刪除 "a": 1 的 documents:deleteMany({"a": 1})
deleteMany()
會把所有符合條件的資料都刪除今天跟大家介紹在 mongoDB 新增資料與刪除資料的方法,下一篇會繼續和大家介紹查詢資料 Find 及更新資料 Update 的方法。