Go下Mongodb操作入门
Mongodb操作入门
https://segmentfault.com/a/1190000020980642?utm_source=tag-newest
关于*mog.iter的使用例子
iter := collection.Find(nil).Iter()
for iter.Next(&result) {
fmt.Printf("Result: %v\n", result.NAME)
personAll.Persons = append(personAll.Persons, result)
}
可以用一个变量检测,有没有检测表里有没有相应变量
在插入表的过程中,注意一下例子,插入结构的首字母必须大写
//定义 Person 结构,字段须为首字母大写
type Person struct {
Name string
Phone string
}
router.GET("/mongo", func(context *gin.Context){
//可本地可远程,不指定协议时默认为http协议访问,此时需要设置 mongodb 的nohttpinterface=false来打开httpinterface。
//也可以指定mongodb协议,如 "mongodb://127.0.0.1:27017"
var MOGODB_URI = "127.0.0.1:27017"
//连接
session, err := mgo.Dial(MOGODB_URI)
//连接失败时终止
if err != nil {
panic(err)
}
//延迟关闭,释放资源
defer session.Close()
//设置模式
session.SetMode(mgo.Monotonic, true)
//选择数据库与集合
c := session.DB("adatabase").C("acollection")
//插入文档
err = c.Insert(&Person{Name:"Ale", Phone:"+55 53 8116 9639"},
&Person{Name:"Cla", Phone:"+55 53 8402 8510"})
//出错判断
if err != nil {
log.Fatal(err)
}
//查询文档
result := Person{}
//注意mongodb存储后的字段大小写问题
err = c.Find(bson.M{"name": "Ale"}).One(&result)
//出错判断
if err != nil {
log.Fatal(err)
}
fmt.Println("Phone:", result.Phone)
})
用主键获取行的函数与用其他键获取函数不一样
主键获取
err := playInfo_collection.FindId(bson.ObjectIdHex(tvID)).One(&result)
非主键获取
iter := c.Find(bson.M{"nickname": t_nickName}).Iter()

浙公网安备 33010602011771号