91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

golang對mongodb的基本操作

發布時間:2020-07-01 12:27:19 來源:網絡 閱讀:946 作者:梁十八 欄目:編程語言
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()
}
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

张掖市| 香格里拉县| 玉树县| 隆安县| 霍城县| 镇远县| 玉山县| 乌兰浩特市| 浦北县| 柘荣县| 阳曲县| 靖边县| 台安县| 新丰县| 务川| 卓资县| 安宁市| 安远县| 独山县| 昌江| 五大连池市| 库车县| 宁夏| 灵璧县| 张家界市| 哈密市| 德庆县| 确山县| 古田县| 交城县| 阿图什市| 洱源县| 巩义市| 如皋市| 临夏县| 永昌县| 遂溪县| 承德县| 象州县| 开鲁县| 焦作市|