首先,先引入下载好的mgo包
import (
"fmt"
"gopkg.in/mgo.v2"
"gopkg.in/mgo.v2/bson"
)
type Person struct {
Name string
Phone string
}
func main() {
//数据库操作
session, err := mgo.Dial("localhost")
if err != nil { panic(err) }
defer session.Close()
session.SetMode(mgo.Monotonic, true)
//切换到text数据库的people集合
c := session.DB("test").C("people")
err = c.Insert(&Person{"老八", "奥里给"}, &Person{"郭老师", "猕猴桃"})
if err != nil { panic(err) }
result := Person{}
//查询1条
err = c.Find(bson.M{"name": "老八"}).One(&result)
if err != nil { panic(err) }
fmt.Println("Phone:", result.Phone)
var users []Person
//查询所有
c.Find(nil).All(&users)
fmt.Println(users)
//修改字段
c.Update(bson.M{"_id": bson.ObjectIdHex("5eccd006e00dcff49a5614d2")},
bson.M{"$set": bson.M{ "name": "Jimmy Gu", "phone": "垃圾", }})
//增加字段
c.Update(bson.M{"_id": bson.ObjectIdHex("5eccd006e00dcff49a5614d2")},
bson.M{"$inc": bson.M{ "edit": 1 }})
//从数组中增加一个元素
c.Update(bson.M{"_id": bson.ObjectIdHex("5eccd006e00dcff49a5614d2")},
bson.M{"$push": bson.M{ "list": "Golangs", }})
//从数组中删除一个元素
c.Update(bson.M{"_id": bson.ObjectIdHex("5eccd006e00dcff49a5614d2")},
bson.M{"$pull": bson.M{ "list": "Golang", }})
// 删除
c.Remove(bson.M{"_id": bson.ObjectIdHex("5eccd006e00dcff49a5614d2")})
}