您好,登錄后才能下訂單哦!
package main
import (
"fmt"
"gopkg.in/mgo.v2"
"gopkg.in/mgo.v2/bson"
"log"
)
type Student struct {
//Id_ bson.ObjectId `bson:"_id"`
Name string `bson:"name"`
Phone string `bson:"phone"`
Email string `bson:"email"`
Sex string `bson:"sex"`
}
//數據庫連接主要用到了mgo中的Dial()函數,連接形式如mgo.Dial(url1,url2,url3)
func ConnecToDB() *mgo.Collection {
session, err := mgo.Dial("127.0.0.1:27017")
if err != nil {
panic(err)
}
//defer session.Close()
session.SetMode(mgo.Monotonic, true)
c := session.DB("medex").C("student")
return c
}
//插入主要用到了函數 func (c *Collection) Insert(docs ...interface{}) error
func InsertToMogo() {
c := ConnecToDB()
stu1 := Student{
Name: "zhangsan",
Phone: "13480989765",
Email: "329832984@qq.com",
Sex: "F",
}
stu2 := Student{
Name: "liss",
Phone: "13980989767",
Email: "12832984@qq.com",
Sex: "M",
}
err := c.Insert(&stu1, &stu2)
if err != nil {
log.Fatal(err)
}
}
//查詢單個主要用到了func (c *Collection) Find(query interface{}) *Query函數,查詢單個和多個主要用到了One()和Many()函數,條件組合可以查看mongDB數據庫使用
func GetDataViaSex() {
c := ConnecToDB()
result := Student{}
err := c.Find(bson.M{"sex": "M"}).One(&result)
if err != nil {
log.Fatal(err)
}
fmt.Println("student", result)
students := make([]Student, 20)
err = c.Find(nil).All(&students)
if err != nil {
log.Fatal(err)
}
fmt.Println(students)
}
//查詢所有形如:c.Find(nil).Many(&results)
//另外,方法中也有個根據id來查詢的方法 func (c *Collection) FindId(id interface{}) *Query,
func GetDataViaId() {
id := bson.ObjectIdHex("5a66a96306d2a40a8b884049")
c := ConnecToDB()
stu := &Student{}
err := c.FindId(id).One(stu)
if err != nil {
log.Fatal(err)
}
fmt.Println(stu)
}
//更新通過函數
//*func (c *Collection) Update(selector interface{}, update interface{}) error
//*func (c *Collection) UpdateAll(selector interface{}, update interface{}) (info *ChangeInfo, err error)
//*func (c *Collection) UpdateId(id interface{}, update interface{}) error
func UpdateDBViaId() {
//id := bson.ObjectIdHex("5a66a96306d2a40a8b884049")
c := ConnecToDB()
err := c.Update(bson.M{"email": "12832984@qq.com"}, bson.M{"$set": bson.M{"name": "haha", "phone": "37848"}})
if err != nil {
log.Fatal(err)
}
}
//刪除對應的方法
//
//func (c *Collection) Remove(selector interface{}) error]
//func (c *Collection) RemoveAll(selector interface{}) (info *ChangeInfo, err error)
//func (c *Collection) RemoveId(id interface{}) error
func RemoveFromMgo() {
c := ConnecToDB()
_, err := c.RemoveAll(bson.M{"phone": "13480989765"})
if err != nil {
log.Fatal(err)
}
}
func main() {
InsertToMogo()
GetDataViaSex()
GetDataViaId()
UpdateDBViaId()
RemoveFromMgo()
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。