Golang+MongoDB实现的增删改查demo

来源:互联网 发布:什么软件替代迅雷 编辑:程序博客网 时间:2024/06/05 11:48
package mainimport ("fmt""gopkg.in/mgo.v2""gopkg.in/mgo.v2/bson")type Person struct {NAME  stringPHONE string}type Men struct {Persons []Person}const (URL = "localhost:27017" //连接mongoDB启动服务的端口号 你得先启动mongoDB服务)func main() {session, err := mgo.Dial(URL) //连接数据库if err != nil {panic(err)}defer session.Close()//Optional. Switch the session to a monotonic behavior.session.SetMode(mgo.Monotonic, true)db := session.DB("test") //数据库名称collection := db.C("person") //如果该集合已经存在的话,则直接返回//*****集合中元素数目********countNum, err := collection.Count()if err != nil {panic(err)}fmt.Println("Things objects count: ", countNum)//*******插入元素*******temp := &Person{PHONE: "7017986",NAME:  "Ale",}//一次可以插入多个对象 插入两个Person对象err = collection.Insert(&Person{"Ale", "13798245114"}, temp)if err != nil {panic(err)}//*****查询单条数据*******result := Person{}err = collection.Find(bson.M{"phone": "13798245114"}).One(&result) //查询单条phone为13798245114的结果fmt.Println("Phone:", result.NAME, result.PHONE)                   //输出单条phone为13798245114的结果//*****查询多条数据*******var personAll Men //存放结果iter := collection.Find(nil).Iter()for iter.Next(&result) {fmt.Printf("Result: %v\n", result)personAll.Persons = append(personAll.Persons, result)}//*******更新数据**********//修改所有name为ddd的对象成name为ddd_, err = collection.UpdateAll(bson.M{"name": "Ale"}, bson.M{"$set": bson.M{"name": "ddd"}})//修改name为ddd的对象成phone为666666err = collection.Update(bson.M{"name": "ddd"}, bson.M{"$set": bson.M{"phone": "666666"}})//修改所有name为ddd的对象成name为xiaomin,phone为123456_, err = collection.UpdateAll(bson.M{"name": "ddd"}, bson.M{"$set": bson.M{"name": "xiaomin", "phone": "123456"}})//******删除所有name为xiaomin的数据************_, err = collection.RemoveAll(bson.M{"name": "xiaomin"})}

运行截图



参考博客  mgo使用指南

原创粉丝点击