Go下Mongodb操作入门

Mongodb操作入门

https://segmentfault.com/a/1190000020980642?utm_source=tag-newest

关于*mog.iter的使用例子

1
2
3
4
5
iter := collection.Find(nil).Iter()
  for iter.Next(&result) {
    fmt.Printf("Result: %v\n", result.NAME)
    personAll.Persons = append(personAll.Persons, result)
  }

 

可以用一个变量检测,有没有检测表里有没有相应变量

 

在插入表的过程中,注意一下例子,插入结构的首字母必须大写

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//定义 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 @   woodx  阅读(233)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示