golang-mongodb范例

摘要:
=Nil{//创建范围索引50log.Println51return52}53//添加记录54person:=Person{55Id:bson.NewObjectId(),56Name:“Free”,57Age_Int:24,58Address:[]地址{59Address{60Address:“Fairy Island”,61},62},63位置:位置{64经度:1,65纬度:1,66},67}68iferr:=集合。插入犯错误
1 package main
2 
3 import (
4     "log"
5 
6     "gopkg.in/mgo.v2"
7     "gopkg.in/mgo.v2/bson"
8 )
9 
10 type Address struct{
11     Address string
12 }
13 type Location struct{
14 Longitude float64
15 Latitude  float64
16 }
17 
18 type Person struct{
19     Id       bson.ObjectId `bson:"_id"`
20     Name     string
21     Age_Int  int 
22 Address  []Address
23 Location Location
24 }
25 
26 func main() {
27     log.SetFlags(log.Flags() |log.Lshortfile)
28     //连接
29     session, err := mgo.Dial("127.0.0.1:27017")
30     if err !=nil {
31 log.Println(err)
32         return
33 }   
34     //设置模式
35     session.SetMode(mgo.Monotonic, true)
36     //获取文档集
37     collection := session.DB("test").C("person")
38     //创建索引
39     index :=mgo.Index{
40         Key:        []string{"name"}, //索引字段, 默认升序,若需降序在字段前加-
41         Unique:     true,             //唯一索引 同mysql唯一索引
42         DropDups:   true,             //索引重复替换旧文档,Unique为true时失效
43         Background: true,             //后台创建索引
44 }   
45     if err := collection.EnsureIndex(index); err !=nil {
46 log.Println(err)
47         return
48 }   
49     if err := collection.EnsureIndexKey("$2dsphere:location"); err != nil { //创建一个范围索引
50 log.Println(err)
51         return
52 }   
53     //添加记录
54     person :=Person{
55 Id:      bson.NewObjectId(),
56         Name:    "逍遥",
57         Age_Int: 24, 
58 Address: []Address{
59 Address{
60                 Address: "仙灵岛",
61 },  
62 },  
63 Location: Location{
64            Longitude: 1,
65             Latitude:  1,
66 },
67 }
68     if err := collection.Insert(person); err !=nil {
69 log.Println(err)
70         return
71 }
72     //查找记录
73     newPerson := &Person{}
74     if err := collection.Find(bson.M{"age_int": 24}).One(newPerson); err !=nil {
75 log.Println(err)
76         return
77 }
78     //修改记录
79     if err := collection.Update(bson.M{"age_int": 24}, bson.M{"$set": bson.M{"age_int": 26}}); err !=nil {
80 log.Println(err)
81         return
82 }
83     //删除记录
84     //if err := collection.Remove(bson.M{"age_int": 26}); err != nil {
85     //log.Println(err)
86     //return
87     //}
88     //位置搜索
89     selector :=bson.M{
90         "location": bson.M{
91             "$near": bson.M{
92                 "$geometry": bson.M{
93                     "type":        "Point",
94                     "coordinates": []float64{1, 1},
95 },
96                 "$maxDistance": 1,
97                 //"$minDistance": 0,
98 },
99 },
100 }
101     if err := collection.Find(selector).One(newPerson); err !=nil {
102 log.Println(err)
103         return
104 }
105     //
106 session.Close()
107 }

免责声明:文章转载自《golang-mongodb范例》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇iptables使用总结rexec/rlogin/rsh介绍下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

json(转)

例如:varjsonObj={StudentID:“100”,名称:“tmac”,家乡:“usa”};回到顶部,如何在JS中使用JSON是JS的一个子集,因此您可以轻松地在JS中读写JSON。例如,现在我们有一个TStudent的学生表。表中的字段和现有数据如图所示。从表中,我们可以看到总共五条数据。现在我们需要从数据库中获取这些数据,然后使用JSON.NE...

UOS上如何安装rpm包

UOS的软件包格式是deb,如果要安装rpm的包则要先把rpm转换成deb才可以安装。步骤如下:1、UOS下安装aliensudoapt-getinstallalien2、将rpm包转为deb包sudoalien-dxxxx.rpm#将rpm转换位deb成功后会生成一个同名的xxxx.deb3、安装deb包sudodpkg-ixxxx.deb注意,用alie...

MySQL的安装、配置文件和初始化

MySQL基于源代码的安装本文以MySQL5.1.73+Centos6.5作为安装演示,其他版本安装方法大同小异。首先下载MySQL5.1.73的源代码包。比如MySQL5.1.73,安装在目录/usr/local/myql-5.1.73,然后做一个软连接/usr/local/mysql指向真正的版本路径。进行到此,MySQL库以及可执行程序已经编译出来,可...

svn常见问题汇总

要添加到版本库,必须更新工作副本中的文件。5.更新时,系统会提示您文件冲突,将工作副本中的文件与服务器中的文件进行比较“当版本管理系统更改计算机上的工作副本时”,它会尝试将您的意图写入计算机上的日志文件,因此日志文件记录可能与您的上次工作状态不一致。Subversion客户端将在提交内容之前在本地工作副本中写入日志。首先删除隐藏文件夹中tmp下的临时文件。服...

TFS(Team Foundation Server)简介和新手入门

随着VisualStudio产品线中TeamFoundationServer组件的公布,微软使得开发团队在僵化的软件project实践应用中取得了巨大进步。TeamFoundationServer起步TeamFoundationServer是这样一种server产品,它须要部署到软件开发环境中。利用Excel和project能够訪问存储在TeamFounda...

ElasticSearch的高级复杂查询:非聚合查询和聚合查询

它与SQL中的GROUPBY类似,但功能更强大。为了更好地理解这个概念,请参阅https://blog.csdn.net/dm_vincent/article/details/42387161Buckets(Bucket):满足特定条件的文档集合。度量:为存储桶中的文档计算的统计信息。一般来说,它可以大致转换为SQL:从tablegroupbyname中选择...