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()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」