golang-mongodb范例
2016-03-16 18:51
399 查看
package main import ( "log" "gopkg.in/mgo.v2" "gopkg.in/mgo.v2/bson" ) type Address struct { Address string } type Location struct { Longitude float64 Latitude float64 } type Person struct { Id bson.ObjectId `bson:"_id"` Name string Age_Int int Address []Address Location Location } func main() { log.SetFlags(log.Flags() | log.Lshortfile) //连接 session, err := mgo.Dial("127.0.0.1:27017") if err != nil { log.Println(err) return } //设置模式 session.SetMode(mgo.Monotonic, true) //获取文档集 collection := session.DB("test").C("person") // 创建索引 index := mgo.Index{ Key: []string{"name"}, // 索引字段, 默认升序,若需降序在字段前加- Unique: true, // 唯一索引 同mysql唯一索引 DropDups: true, // 索引重复替换旧文档,Unique为true时失效 Background: true, // 后台创建索引 } if err := collection.EnsureIndex(index); err != nil { log.Println(err) return } if err := collection.EnsureIndexKey("$2dsphere:location"); err != nil { // 创建一个范围索引 log.Println(err) return } //添加记录 person := Person{ Id: bson.NewObjectId(), Name: "逍遥", Age_Int: 24, Address: []Address{ Address{ Address: "仙灵岛", }, }, Location: Location{ Longitude: 1, Latitude: 1, }, } if err := collection.Insert(person); err != nil { log.Println(err) return } //查找记录 newPerson := &Person{} if err := collection.Find(bson.M{"age_int": 24}).One(newPerson); err != nil { log.Println(err) return } //修改记录 if err := collection.Update(bson.M{"age_int": 24}, bson.M{"$set": bson.M{"age_int": 26}}); err != nil { log.Println(err) return } //删除记录 //if err := collection.Remove(bson.M{"age_int": 26}); err != nil { // log.Println(err) // return //} //位置搜索 selector := bson.M{ "location": bson.M{ "$near": bson.M{ "$geometry": bson.M{ "type": "Point", "coordinates": []float64{1, 1}, }, "$maxDistance": 1, //"$minDistance": 0, }, }, } if err := collection.Find(selector).One(newPerson); err != nil { log.Println(err) return } // session.Close() }
相关文章推荐
- Mongodb在Java中的使用
- MongoDB报表实例 -- 标签成员方案
- MongoDB报表实例 -- 隐藏成员方案
- MongoDB报表实例 -- 隐藏成员方案
- laravel-mongodb查询条件与字段类型不一致问题
- MongoDB使用小结:一些常用操作分享
- MongoDB报表实例 -- 架构
- MongoDB报表实例 -- 架构
- mongodb C++驱动VS2012编译
- MongoDB 安装
- 【MongoDB】在windows平台下mongodb的分片集群(五)
- R and MongoDB
- MongoDB复制集之:安装部署
- Python保存MongoDB上的文件到本地的方法
- mongodb与sql语句对照表
- Mysql与MongoDB对比测试
- MongoDB之php操作
- MongoDB:用户认证
- MongoDB2.0安装配置
- Python保存MongoDB上的文件到本地的方法