Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >golang 操作mongodb 示例

golang 操作mongodb 示例

原创
作者头像
大师级码师
修改于 2021-11-02 03:09:10
修改于 2021-11-02 03:09:10
31000
代码可运行
举报
文章被收录于专栏:大师级码师大师级码师
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package main
import (
    "fmt"
    "launchpad.net/mgo"
    "launchpad.net/mgo/bson"
)
type Mail struct {
    Id bson.ObjectId "_id"
    Name string
    Email string
}
func main() {
    // 连接数据库
    session, err := mgo.Dial("127.0.0.1")
    if err != nil {
        panic(err)
    }
    defer session.Close()

// 获取数据库,获取集合
c := session.DB("test").C("mail")

// 存储数据
m1 := Mail{bson.NewObjectId(), "user1", "user1@dotcoo.com"}
m2 := Mail{bson.NewObjectId(), "user1", "user2@dotcoo.com"}
m3 := Mail{bson.NewObjectId(), "user3", "user3@dotcoo.com"}
m4 := Mail{bson.NewObjectId(), "user3", "user4@dotcoo.com"}
err = c.Insert(&m1, &m2, &m3, &m4)
if err != nil {
    panic(err)
}

// 读取数据
ms := []Mail{}
err = c.Find(&bson.M{"name":"user3"}).All(&ms)
if err != nil {
    panic(err)
}

// 显示数据
for i, m := range ms {
    fmt.Printf("%s, %d, %s\n", m.Id.Hex(), i, m.Email)
}
 
}</pre> 

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
golang学习之mgo操作mongodb
mgo是mongodb的golang驱动,测试代码: // mgotest project main.go package main import ( "fmt" "time"
用户1141560
2017/12/26
2.1K0
原 Go 的 MogonDB 包 mgo
gopkg.in/mgo.v2 库是go语言里对应着MogonDB的库,好似这个推荐的人很多,比go对mysql的库统一多了 一、连接数据库 // 注意包的引用 const URL = "" //mongodb连接字符串 var ( mgoSession *mgo.Session dataBase = "mydb" ) /** * 公共方法,获取session,如果存在则拷贝一份 */ func getSession() *mgo.Session { if mgoSession ==
霡霂
2018/06/04
1.7K0
Go语言实践篇之MongoDB
关于MongoDB数据的基本介绍与环境搭建相关知识,可参见我的另一篇文章 文档数据库 MongoDB
arcticfox
2019/09/17
2.2K0
Golang 对MongoDB的操作简单封装
每一次操作都copy一份 Session,避免每次创建Session,导致连接数量超过设置的最大值 获取文档对象c := Session.DB(db).C(collection)
程序员同行者
2019/02/22
2.4K0
MongoDB 学习笔记3 - 使用 mgo 连接MongoDB
mgo 是一个连接 MongoDB 数据库的客户端程序和驱动。我们使用它连接 MongoDB。
张云飞Vir
2020/04/09
1.7K0
golang建立MongoDB连接池
最近用go语言重构之前用python草草搭建的推荐引擎,语言杂食确实很难受,不过不得不说,在饱受弱类型脚本语言的摧残之后重新用回强类型语言,轻微强迫症的我居然还有些开心?(终于摆脱没完没了的type assertion啦)
星回
2018/08/02
2.4K0
一日一学_Go语言mgo(mongo场景应用)
注意: 上图已经告知我们mongo不支持事务,在开发项目应用时,想要保证数据的完整性请考虑关系型数据库(经典例子银行转账)。 mongo提供了许多原子操作,比如文档的保存,修改,删除等,都是原子操作。所谓原子操作就是要么这个文档保存到mongodb,要么没有保存到mongodb,不会出现查询到的文档不完整的情况。
李海彬
2019/01/08
1.5K0
golang使用 mongo
 连接集群 mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?o
架构师刀哥
2018/03/20
2.4K0
golang mongoDB GridFS查询 存储 删除文件
GridFS 用于存储和恢复那些超过16M(BSON文件限制)的文件(如:图片、音频、视频等),如果没有超过16m大小可以将数据保存在BSON数据中。 GridFS 也是文件存储的一种方式,但是它是存储在MonoDB的集合中。
地球流浪猫
2018/08/02
3.2K0
golang mongoDB GridFS查询 存储 删除文件
mgo 使用
批量插入 参考批量插入 使用 mgo Bulk() 方法进行插入 func BenchmarkBulkInsert(b *testing.B) { b.StopTimer() // Database dbs, err := mgo.Dial("mongodb://localhost/ac-bench") if err != nil { panic(err) } // Collections uc := dbs.Clone().DB("").C("usersBenchmarkBulk")
solate
2019/07/22
8190
MongoDB 存储过程的使用以及性能调优方案
虽然MongoDB给了我们很多驱动可以用,但是都没有mongodb的shell来的方便。 就比如说最近需要做的DBRef嵌套类型的数据要做CRUD如果使用mog驱动的话会非常麻烦。 因此我们这里来做个试验,首先给test数据库添加初始化数据添加Server-side script 以及测试 mongo 添加数据 db.people.insert({"_id":"test","phone","233333"}) //输入原始数据 // 数据库修改函数 // update之后返回修改后的数据。 people
李海彬
2018/03/20
1.4K0
golang mongoDB 的集合创建以及增删改查操作
mongo官方没有golang 的官方驱动,但是有一个社区驱动: http://labix.org/mgo api文档:https://godoc.org/gopkg.in/mgo.v2#Collection.Update 数据的连接操作请看的我的上一篇博客,本文重点介绍mgo的CURD操作及遇到的坑。 mog的文档可以不用特别的创建,在数据插入的时候,如果驱动发现文档不存在,会自动创建。 连接操作
地球流浪猫
2018/08/02
2.5K0
使用Go开发一个简单的服务器程序
最近有个小项目,需要一个简单的后台程序来支撑,本来想用Nodejs来做,但是由于本人js一直很菜,并且很讨厌callback,虽然我也很喜欢异步模型,但我一直都觉得JS是反人类的。后台就用了go处理,数据存储使用的mongodb。怎么说来着,从生成数据的角度来讲,这东西把C#+SQLCE甩出好几条街。生成go+mongodb 大约,10秒左右,而后者只是大约需要5分钟。当然,这个完全是写法问题。因为是写一条,就保存一下,如果C#那边一次保存的话性能也不会很差。但考虑的部署问题,因为GO只要2个exe和一个m
李海彬
2018/03/22
1.1K0
golang学习之go简单博客应用
先说说golang的语法吧,个人觉得有以下特点: 简洁,不管是变量、方法声明,还是代码编写,均十分简洁,效率也比较高 非纯粹面向对象,但是go的struct类似c的struct,go的结构体还可以进行
用户1141560
2017/12/26
2.1K0
golang学习之go简单博客应用
Golang 与mongodb的交互。嵌套struct
mongodb这类nosql数据库,还是先定义结构比较好啊。存取方便。蛋疼的是golang定义个嵌套的struct好费劲啊。。 primitive.NewObjectID() 可以生成一个mongodb的_id,找了半天这个函数。网上都是 mgo的函数。好像好久不更新了。mongo-driver是mongodb的官方驱动?所以不用第三方的了吧。
xiny120
2019/07/17
4.9K0
Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务:第二篇(内附开发 demo)
开发时,我们可以点击 Create New Playground 按钮,进行数据库相关的 CRUD 操作。
为少
2021/05/27
1.2K0
Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务:第二篇(内附开发 demo)
MongoDB Golang 示例代码
包含 增删改查,索引设置,事务,max,cout等的使用 和 压力测试 主要是要适应习惯 bson.M/A/D的使用 其中事务需要有 replica set集群支持 完整代码如下: package main import ( "context" "flag" "fmt" "go.mongodb.org/mongo-driver/bson" "log" "math/rand" "sync" "time" "go.mongodb.o
IT工作者
2022/07/20
5850
mongodb 学习随笔 及golang 连接mongoDB
Mogondb 不支持事务。所有有事务要求的需求慎用,比如银行的转账操作慎用,转1个亿美金,因为网络,电力的故障导致交易没有完成,不能回滚,交易无法撤回。所有慎用!!
地球流浪猫
2018/08/02
2.1K0
go mongodb 使用mgo remove碰到的问题
因为使用了go的模板,所以在 前端传到后端的过程中造成直接传值错误,所以需要先将得到的 id 进行处理
solate
2019/07/22
8660
golang mgo的mongo连接池设置:必须手动加上maxPoolSize
本司礼物系统使用了golang的 mongo库 mgo,中间踩了一些坑,总结下避免大家再踩坑 golang的mgo库说明里是说明了开启连接复用的,但观察实验发现,这并没有根本实现连接的控制,连接复用仅在有空闲连接时生效,高并发时无可用连接会不断创建新连接,所以最终还是需要程序员自行去限制最大连接才行。 废话不多说,开始上代码 GlobalMgoSession, err := mgo.Dial(host) func (m *MongoBaseDao) Get(tablename strin
架构师刀哥
2018/03/20
3.8K1
相关推荐
golang学习之mgo操作mongodb
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验