京寵展信息指南
1076
2022-05-30
目錄
前言
正文
步驟一、導入mgm
步驟二、創建數據庫模型
步驟三、增刪改查操作
結尾
往期推薦博文:MongoDB中間件工具mgm入門介紹(一)
前言
眾所周知,MongoDB 是一個通用、基于文檔的分布式數據庫,非常適合云原生服務的應用場景。上一篇文章已經簡單介紹了 MongoDB 數據庫的中間件工具 mgm,今天就來聊一聊 mgm 的接口使用方法。
正文
步驟一、導入mgm
導入 mgm 工具包,設置默認配置項,代碼參考如下:
import ( "github.com/kamva/mgm/v3" "go.mongodb.org/mongo-driver/mongo/options" ) func init() { err := mgm.SetDefaultConfig(nil, "mgm_test", options.Client().ApplyURI("mongodb://root:12345@localhost:27017")) }
1
2
3
4
5
6
7
8
9
步驟二、創建數據庫模型
創建一個人的數據庫模型,包括名字name、年齡age,這個過程也非常簡單,只需要簡單的聲明,就能夠被數據庫識別。代碼參考如下:
type Person struct { // DefaultModel adds _id, created_at and updated_at fields to the Model mgm.DefaultModel `bson:",inline"` Name string `json:"name" bson:"name"` Age int `json:"age" bson:"age"` } func NewPerson(name string, age int) *Person { return &Person{ Name: name, Age: age, } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
步驟三、增刪改查操作
我們插入一條數據庫記錄,用戶名字是 liuzhen007,年齡是 30,代碼參考如下:
// 創建一條記錄 person := NewPerson("liuzhen007", 30) // 寫入數據庫 err := mgm.Coll(person).Create(person) if err != nil { fmt.Println("數據庫插入失敗", err) }
1
2
3
4
5
6
7
我們查找名字為 liuzhen007 的用戶記錄,代碼參考如下:
// 獲取數據庫集合 person := &Person{} coll := mgm.Coll(person) // 查找名字為 liuzhen007 的記錄 _ = coll.First(bson.M{"name": "liuzhen007"}, person)
1
2
3
4
5
6
除此之外,還有兩種查詢方式,比如根據具體的ID進行查詢,代碼參考如下:
_ = coll.FindByID("5e0518aaliuzhen0079410ee3", person)
1
還有可以直接查詢數據庫中的第一條記錄,代碼參考如下:
_ = coll.First(bson.M{}, person)
1
我們把數據庫中名字為 liuzhen007 的用戶的年齡改為 31,但是,這個更新過程首先要查找到對應的數據庫記錄,這樣就用到了我們上面講到的查詢記錄接口。代碼參考如下:
// 先找到對應的記錄 _ = coll.First(bson.M{"name": "liuzhen007"}, person) // 然后更新年齡 person.Age = 31 err := mgm.Coll(person).Update(person)
1
2
3
4
5
6
現在,我們來刪除一條數據庫記錄,同樣在刪除前,我們首先要找到這條記錄,這是一個非常符合實際開發流程的操作,如果數據庫中沒有對應的記錄,在進行刪除和更新操作時,可能會導致很多意想不到的問題,代碼代碼如下:
// 先找到對應的記錄 _ = coll.First(bson.M{"name": "liuzhen007"}, person) // 然后刪除記錄 err := mgm.Coll(person).Delete(person)
1
2
3
4
5
結尾
好了,今天關于 mgm 處理 MongoDB 數據庫增刪改查操作的方法就介紹完了,當然 mgm 還有很多更加高級的玩法,我們下期再進行介紹。大家好,我是 liuzhen007(Data-Mining),歡迎關注,分享更多服務器和數據庫的內容知識。
MongoDB 數據庫
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。