美文网首页
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