github:https://github.com/zhangzhebjut/blog/blob/master/mgo.md 现在mongodb官方还没有推出关于官方支持的golang的driver,推荐使用的是mgo. mgo的详细文档说明:http://godoc.org/labix.org/v2/mgo 下面是我开发中自己写的一个用mgo连接mongodb数据库的使
github:https://github.com/zhangzhebjut/blog/blob/master/mgo.md
现在mongodb官方还没有推出关于官方支持的golang的driver,推荐使用的是mgo. mgo的详细文档说明:http://godoc.org/labix.org/v2/mgo
下面是我开发中自己写的一个用mgo连接mongodb数据库的使用实例。package mainimport ( fmt labix.org/v2/mgo labix.org/v2/mgo/bson)type person struct { name string phone string}type men struct { persons []person}const = ( url = 192.168.2.175:27017)func main() { session, err := mgo.dial(url) //连接数据库 if err != nil { panic(err) } defer session.close() session.setmode(mgo.monotonic, true) db := session.db(mydb) //数据库名称 collection := db.c(person) //如果该集合已经存在的话,则直接返回 //*****集合中元素数目******** countnum, err := collection.count() if err != nil { panic(err) } fmt.println(things objects count: , countnum) //*******插入元素******* temp := &person{ phone: 18811577546, name: zhangzhehero } //一次可以插入多个对象 插入两个person对象 err = collection.insert(&person{ale, +55 53 8116 9639}, temp) if err != nil { panic(err) } //*****查询单条数据******* result := person{} err = collection.find(bson.m{phone: 456}).one(&result) fmt.println(phone:, result.name, result.phone) //*****查询多条数据******* var personall men //存放结果 iter := collection.find(nil).iter() for iter.next(&result) { fmt.printf(result: %v\n, result.name) personall.persons = append(personall.persons, result) } //*******更新数据********** err = collection.update(bson.m{name: ccc}, bson.m{$set: bson.m{name: ddd}}) err = collection.update(bson.m{name: ddd}, bson.m{$set: bson.m{phone: 12345678}}) err = collection.update(bson.m{name: aaa}, bson.m{phone: 1245, name: bbb}) //******删除数据************ _, err = collection.removeall(bson.m{name: ale”})
}