加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

golang的mongodb操作(mgo)

发布时间:2020-12-16 19:25:38 所属栏目:大数据 来源:网络整理
导读:使用mgohttp://godoc.org/labix.org/v2/mgo packagemainimport("fmt""labix.org/v2/mgo""labix.org/v2/mgo/bson")typePersonstruct{NAMEstringPHONEstring}typeMenstruct{Persons[]Person}const=(URL="192.168.2.175:27017")funcmain(){session,err:=mgo.Dia

使用mgohttp://godoc.org/labix.org/v2/mgo


packagemain

import(
"fmt"
"labix.org/v2/mgo"
"labix.org/v2/mgo/bson"
)

typePersonstruct{
NAMEstring
PHONEstring
}
typeMenstruct{
Persons[]Person
}
const=(
URL="192.168.2.175:27017"
)
funcmain(){

session,err:=mgo.Dial(URL)//连接数据库
iferr!=nil{
panic(err)
}
defersession.Close()
session.SetMode(mgo.Monotonic,true)

db:=session.DB("mydb")	//数据库名称
collection:=db.C("person")//如果该集合已经存在的话,则直接返回


//*****集合中元素数目********
countNum,err:=collection.Count()
iferr!=nil{
panic(err)
}
fmt.Println("Thingsobjectscount:",countNum)

//*******插入元素*******
temp:=&Person{
PHONE:"18811577546",NAME:"zhangzheHero"
}
//一次可以插入多个对象插入两个Person对象
err=collection.Insert(&Person{"Ale","+555381169639"},temp)
iferr!=nil{
panic(err)
}

//*****查询单条数据*******
result:=Person{}
err=collection.Find(bson.M{"phone":"456"}).One(&result)
fmt.Println("Phone:",result.NAME,result.PHONE)

//*****查询多条数据*******
varpersonAllMen//存放结果
iter:=collection.Find(nil).Iter()
foriter.Next(&result){
fmt.Printf("Result:%vn",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”})
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读