美文网首页
golang 中数据库驱动mgo

golang 中数据库驱动mgo

作者: 追梦人在路上不断追寻 | 来源:发表于2020-08-07 18:37 被阅读0次

    mgo

    非常好用的mongodb的数据库驱动,golang语言编写,非常适合集成到项目中进行mongodb的操作。

    使用方法

    • 引入第三方包
    import (
        "gopkg.in/mgo.v2"
        "gopkg.in/mgo.v2/bson"
         "fmt"
    )
    
    • 定义数据集合结构
    type Movie struct {
        ID           bson.ObjectId `bson:"_id"`
        Name         string        `bson:"name"`
    }
    
    • 创建数据库连接
    url := fmt.Sprintf("mongodb://%v:%v@%v:%v/?authSource=admin", "root", "root, "127.0.0.1", 27017)
    session, err := mgo.Dial(url)
    session.SetMode(mgo.Monotonic, true)
    
    • 查询数据
    collection := session.DB("movie").C("c_movie")// movie数据库名,c_movie集合名
    var group []Movie
    err : = c.Find(nil).All(&group)
    
    • 随机获取一条数据
    
    s, c := session.DB("movie").C("c_movie")
    defer s.Close()
    
    pipeline := []bson.M{
        bson.M{"$sample": bson.M{"size": 1}},
    }
    
     := c.Pipe(pipeline)
    
    iter := pipe.Iter()
    
    for iter.Next(&a) {
    
    }
    //*a 就是随机的数据
    

    -删除数据

    s, c := session.DB("movie").C("c_movie")
    defer s.Close()
    c.Remove(bson.M{"_id": bson.ObjectIdHex("5f2283b27b046edc980d517d")})
    
    • 添加数据
    s, c := session.DB("movie").C("c_movie")
    defer s.Close()
    a  = {"ID":bson.NewObjectId(),"Name":"梦回故里"}
    c.Insert(&a)
    
    • 更新数据
    s, c := session.DB("movie").C("c_movie")
    defer s.Close()
    a  = bson.M{"ID":bson.NewObjectId(),"Name":"梦回故里"}
    c.Update(bson.M{"_id": a.ID}, a)
    

    相关文章

      网友评论

          本文标题:golang 中数据库驱动mgo

          本文链接:https://www.haomeiwen.com/subject/unfsrktx.html