因為之前筆者打算將專案改使用 MongoDB Atlas 作為後端,因此今日想做一點簡單的MongoDB的語法介紹。
use
使用指令我們可以使用 use
來在各個資料庫(database)中切換,倘若該名稱的資料庫並不存在於cluster之中的話,便會建立一個擁有該名稱的新資料庫。如下列範例中所示,我們可以使用此指令來建立一個名為 accounts 的新資料庫,並切換至其中。
[primary] admin> use accounts
switched to db accounts
[primary] accounts>
當我們已經切至欲編輯的資料庫後,可以使用以下幾種指令來新增集合:
[primary] accounts> db.createCollection("user_info")
[primary] accounts> db.post.insertOne({
title: "Post Title 1",
body: "Body of post.",
category: "News",
likes: 1,
tags: ["news", "events"],
date: Date()
})
從上方範例可以看出,db.createCollections()
可以用於新增一個集合,而 db.<collection_name>.insertOne()
將能夠在新增 documents 時一併將還不存在的集合建立起來。
讀到這裡的你可能會有跟筆者相同的疑問,Database 跟 Collections 究竟是什麼東西,他們之間又有著什麼樣的關係?關於這一點,可以參考這個圖片:
1. 新增
資料庫的一大優勢,也是人們喜歡使用他們做檔案資料管理的原因,便是他們的資料處理能力,如新增、查詢、更新等等,想當然,MongoDB也少不了這方面的功能。除了上面所提及的 insertOne()
,我們也可以使用 insertMany()
來一次新增多筆資料:
db.posts.insertMany([
{
title: "Post Title 2",
body: "Body of post.",
category: "Event",
likes: 2,
tags: ["news", "events"],
date: Date()
},
{
title: "Post Title 3",
body: "Body of post.",
category: "Technology",
likes: 3,
tags: ["news", "events"],
date: Date()
},
{
title: "Post Title 4",
body: "Body of post.",
category: "Event",
likes: 4,
tags: ["news", "events"],
date: Date()
}
])
2. 查詢
在查詢方面,MongoDB提供了 find()
以及 findOne()
,這部份各位可以參考 w3school 所提供的教學,並於其網頁中實際操作看看。
3. 更新
與查詢的方法相似,更新將會需要一個查詢用的 Query,以及更新用的資料,並且也有「更新第一筆資料」以及「更新所有符合的資料」這兩種不同的函式,他們分別是 updateOne()
與 updateMany()
,這部份各位可以參考 w3school。
4. 刪除
與查詢相同,刪除也有著兩個不同的函式,那便是 deleteOne()
以及 deleteMany()
,詳細可以參考 w3school