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)