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()

 

posted @ 2020-12-14 21:06  woodx  阅读(242)  评论(0)    收藏  举报