首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏solate 杂货铺

    mgo 使用

    批量插入 参考批量插入 使用 mgo Bulk() 方法进行插入 func BenchmarkBulkInsert(b *testing.B) { b.StopTimer() // Database dbs, err := mgo.Dial("mongodb://localhost/ac-bench") if err !

    91510发布于 2019-07-22
  • 来自专栏Golang语言社区

    Golang的mongodb操作(mgo)

    使用mgo http://godoc.org/labix.org/v2/mgo

    85170发布于 2018-03-21
  • 来自专栏西安-晁州

    golang学习之mgo操作mongodb

    mgo是mongodb的golang驱动,测试代码: // mgotest project main.go package main import ( "fmt" "time" "gopkg.in/mgo.v2" "gopkg.in/mgo.v2/bson" ) type User struct { Id bson.ObjectId `bson: regtime"` Interests []string `bson:"interests"` } const URL String = "127.0.0.1:27017" var c *mgo.Collection var session *mgo.Session func (user User) ToString() string { return fmt.Sprintf("%#v", user) } func init() { session, _ = mgo.Dial(URL) //切换到数据库 db := session.DB("blog") //切换到collection

    2.2K00发布于 2017-12-26
  • 来自专栏雨过天晴

    原 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 == nil { var err error mgoSession, err = mgo.Dial

    1.9K30发布于 2018-06-04
  • 来自专栏函数式编程语言及工具

    PICE(5):MongoDBStreaming - gRPC -MGO Service

    = Int val MGO_COMMAND_FIND = 0 val MGO_COMMAND_COUNT = 20 val MGO_COMMAND_DISTICT = 21 val MGO_COMMAND_DOCUMENTSTREAM = 1 val MGO_COMMAND_AGGREGATE = 2 val MGO_COMMAND_INSERT = 3 val MGO_COMMAND_DELETE = 4 val MGO_COMMAND_REPLACE = 5 val MGO_COMMAND_UPDATE = 6 val MGO_ADMIN_DROPCOLLECTION = 8 val MGO_ADMIN_CREATECOLLECTION = 9 val MGO_ADMIN_LISTCOLLECTION = 10 val MGO_ADMIN_CREATEVIEW = 11 val MGO_ADMIN_CREATEINDEX = 12 val MGO_ADMIN_DROPINDEXBYNAME

    98340发布于 2018-09-28
  • 来自专栏solate 杂货铺

    go mongodb 使用mgo remove碰到的问题

    用go的mgo来使用mongo 碰到的问题总结: struct tag 如果需要获得 id ,那么 需要将 id定义为 bson.ObjectId 类型 type Person struct {

    1K20发布于 2019-07-22
  • 来自专栏写代码和思考

    MongoDB 学习笔记3 - 使用 mgo 连接MongoDB

    背景 mgo 是一个连接 MongoDB 数据库的客户端程序和驱动。我们使用它连接 MongoDB。 ? mgo 1. 突出特点: 集群发现和通信:mgo提供自动化的集群拓扑发现和维护。 故障转移管理:当主服务器发生更改时,mgo将自动进行故障转移。 灵活的序列化: mgo通过gobson支持文档的灵活编组和解组 与池集成的身份验证支持:mgo提供身份验证支持,具有强大的连接池集成。 操作示例 2.1 安装 go get gopkg.in/mgo.v2 2.2 导入 import ( "gopkg.in/mgo.v2" "gopkg.in/mgo.v2 /bson" ) 2.3 建立连接 使用 mgo.Dial() 建立连接,返回对象是个 session 。

    2K30发布于 2020-04-09
  • 来自专栏Golang语言社区

    一日一学_Go语言mgo(mongo场景应用)

    原文作者;WuXiao_ 来源:简书 本文重点介绍mgo使用,仅简单介绍mongodb。 mgo简介 mgo 是 mongodb 的 GO 语言驱动包。 mgo官网:http://labix.org/mgo mgo使用 mgo方案一 1package mgo 2 3import ( 4 "flag" 5 "gopkg.in/mgo.v2 " 6 "log" 7 "study/conf" 8) 9 10var session *mgo.Session 11var database *mgo.Database 12 13func , nil 13} mgo方案一和二测试: 使用boom进行并发测试,并在每个 goroutine 里面sleep 5秒,这样是让连接暂时不释放,就可以看到 mgo 方案二 会不断创建新连接,方案一不会创建新连接

    1.7K30发布于 2019-01-08
  • 来自专栏我命由我不由天

    golang 中mgo update报错: The dollar ($) prefixed field $inc in $inc is not valid for storage.

    _, err := c.Find(bson.M{"index": index}).Apply(mgo.Change{ Upsert: true, ReturnNew: false, 因此改为: _, err := c.Find(bson.M{"index": index}).Apply(mgo.Change{ Upsert: true, ReturnNew: false

    2.2K20发布于 2020-04-08
  • 来自专栏坚毅的PHP

    golang mgo的mongo连接池设置:必须手动加上maxPoolSize

    本司礼物系统使用了golang的 mongo库 mgo,中间踩了一些坑,总结下避免大家再踩坑 golang的mgo库说明里是说明了开启连接复用的,但观察实验发现,这并没有根本实现连接的控制,连接复用仅在有空闲连接时生效 废话不多说,开始上代码 GlobalMgoSession, err := mgo.Dial(host)   func (m *MongoBaseDao) Get(tablename string, id defer close掉 启用maxPoolLimit 参数则会限制总连接大小,连接到限制则当前协程会sleep等待  直到可以创建连接,高并发时锁有问题,会导致多创建几个连接 src/gopkg.in/mgo.v2 mgo底层socket连接池只在maxPooMaxLimit 范围内实现复用,需要自行优化。

    4K30发布于 2018-03-20
  • 来自专栏星回的实验室

    golang建立MongoDB连接池

    我在工程里用的库是mgo,最简单的代码实例如下: func GetUserProfile(uid string) (result UserProfile) { session, err = mgo.Dial("ip:port") if err ! var mongoPool map[string]*mgo.Session func init() { // 根据配置文件名映射不同MongoDB连接 mongoPool = map [string]*mgo.Session{} } /* 获取MongoDB会话 */ func GetMongoSession(name string) *mgo.Session { err := collection.Find(bson.M{"uid": uid}).One(&result) return } Dial方式还可以改成下面的方式: dialInfo := &mgo.DialInfo

    2.6K50发布于 2018-08-02
  • 来自专栏Golang语言社区

    使用Go开发一个简单的服务器程序

    比较烦 1 package main 2 3 import( 4 "encoding/json" 5 "fmt" 6 "log" 7 "labix.org/v2/mgo" rw http.ResponseWriter, req *http.Request){ 25 req.ParseForm() //解析参数,默认是不会解析的 26 sess, err := mgo.Dial ); 29 } 30 defer sess.Close() 31 log.Println("id的值:", req.FormValue("id")) 32 sess.SetSafe(&mgo.Safe = nil { 47 fmt.Fprintf(rw, "连接数据库失败"); 48 } 49 defer sess.Close() 50 sess.SetSafe(&mgo.Safe 的安装 请参见 http://labix.org/mgo 另由于最近的工作一直需要2台电脑。

    1K90发布于 2018-03-27
  • 来自专栏Golang语言社区

    使用Go开发一个简单的服务器程序

    比较烦 1 package main 2 3 import( 4 "encoding/json" 5 "fmt" 6 "log" 7 "labix.org/v2/mgo" rw http.ResponseWriter, req *http.Request){ 25 req.ParseForm() //解析参数,默认是不会解析的 26 sess, err := mgo.Dial ); 29 } 30 defer sess.Close() 31 log.Println("id的值:", req.FormValue("id")) 32 sess.SetSafe(&mgo.Safe = nil { 47 fmt.Fprintf(rw, "连接数据库失败"); 48 } 49 defer sess.Close() 50 sess.SetSafe(&mgo.Safe 的安装 请参见 http://labix.org/mgo 另由于最近的工作一直需要2台电脑。

    1.3K100发布于 2018-03-26
  • 来自专栏Golang语言社区

    使用Go开发一个简单的服务器程序

    1 package main 2 3 import( 4 "encoding/json" 5 "fmt" 6 "log" 7 "labix.org/v2/mgo " 8 "labix.org/v2/mgo/bson" 9 "net/http" 10 "strconv" 11 ) 12 13 type Room struct { 14 http.ResponseWriter, req *http.Request){ 25 req.ParseForm() //解析参数,默认是不会解析的 26 sess, err := mgo.Dial http.HandleFunc("/updateRoom", updateRoom) 67 log.Fatal(http.ListenAndServe(":8002", nil)) 68 } mgo 的安装 请参见 http://labix.org/mgo 另由于最近的工作一直需要2台电脑。

    1.2K60发布于 2018-03-26
  • 来自专栏函数式编程语言及工具

    Akka-Cluster(3)- ClusterClient, 集群客户端

    = Int val MGO_COMMAND_FIND = 0 val MGO_COMMAND_COUNT = 20 val MGO_COMMAND_DISTICT = 21 val MGO_COMMAND_DOCUMENTSTREAM = 1 val MGO_COMMAND_AGGREGATE = 2 val MGO_COMMAND_INSERT = 3 val MGO_COMMAND_DELETE = 4 val MGO_COMMAND_REPLACE = 5 val MGO_COMMAND_UPDATE = 6 val MGO_ADMIN_DROPCOLLECTION = 8 val MGO_ADMIN_CREATECOLLECTION = 9 val MGO_ADMIN_LISTCOLLECTION = 10 val MGO_ADMIN_CREATEVIEW = 11 val MGO_ADMIN_CREATEINDEX = 12 val MGO_ADMIN_DROPINDEXBYNAME

    2.2K20发布于 2018-12-25
  • 来自专栏oeasy教您玩转linux、python

    [oeasy]python0074_修改字体背景颜色_background_color_背景色

    重温参数具体动手试试print("\033[40moeasy\33[0mgo")print("\033[41moeasy\33[0mgo")print("\033[42moeasy\33[0mgo")print ("\033[43moeasy\33[0mgo")print("\033[44moeasy\33[0mgo")print("\033[45moeasy\33[0mgo")print("\033[46moeasy \33[0mgo")print("\033[47moeasy\33[0mgo")背景设置开拓思路还可以 做出 什么样 好玩的效果 吗?

    1.4K30编辑于 2023-02-07
  • 来自专栏编程之路的专栏

    Go语言实践篇之MongoDB

    快速上手 CRUD操作 插入 删除 修改 查询 字段映射 Go语言中MongoDB的使用 关于MongoDB数据的基本介绍与环境搭建相关知识,可参见我的另一篇文章 文档数据库 MongoDB 环境准备 mgo 简介 mgo(音mango)是MongoDB的Go语言驱动,它用基于Go语法的简单API实现了丰富的特性,并经过良好测试。 官方网站:http://labix.org/mgo API文档[1] 安装 go get gopkg.in/mgo.v2 快速上手 mgo简单操作步骤 导入mgo包 连接MongoDB服务 打开指定的数据库 并创建一个名为people的集合 package main import ( "fmt" "log" // 导入相关包 "gopkg.in/mgo.v2 " "gopkg.in/mgo.v2/bson" ) // 声明一个结构体 type Person struct { Name string Phone

    2.4K20发布于 2019-09-17
  • 来自专栏函数式编程语言及工具

    Akka-Cluster(5)- load-balancing with backoff-supervised stateless computation - 无状态任务集群节点均衡分配

    = Int val MGO_COMMAND_FIND = 0 val MGO_COMMAND_COUNT = 20 val MGO_COMMAND_DISTICT = 21 val MGO_COMMAND_DOCUMENTSTREAM = 1 val MGO_COMMAND_AGGREGATE = 2 val MGO_COMMAND_INSERT = 3 val MGO_COMMAND_DELETE = 4 val MGO_COMMAND_REPLACE = 5 val MGO_COMMAND_UPDATE = 6 val MGO_ADMIN_DROPCOLLECTION = 8 val MGO_ADMIN_CREATECOLLECTION = 9 val MGO_ADMIN_LISTCOLLECTION = 10 val MGO_ADMIN_CREATEVIEW = 11 val MGO_ADMIN_CREATEINDEX = 12 val MGO_ADMIN_DROPINDEXBYNAME

    1.8K20发布于 2019-01-07
  • 来自专栏函数式编程语言及工具

    restapi(4)- rest-mongo : MongoDB数据库前端的httpserver

    Document] = { val ctxFind = MGOContext(dbName = db,collName=coll) .setActionType(MGO_ACTION_TYPE.MGO_QUERY DeleteResult] = { val ctxDelete = MGOContext(dbName = db,collName=coll) .setActionType(MGO_ACTION_TYPE.MGO_UPDATE UpdateResult] = { val ctxUpdate = MGOContext(dbName = db,collName=coll) .setActionType(MGO_ACTION_TYPE.MGO_UPDATE UpdateResult] = { val ctxUpdate = MGOContext(dbName = db,collName=coll) .setActionType(MGO_ACTION_TYPE.MGO_UPDATE Document] = { val ctxFind = MGOContext(dbName = db,collName=coll) .setActionType(MGO_ACTION_TYPE.MGO_QUERY

    2.2K20发布于 2019-08-13
  • 来自专栏程序员同行者

    Golang 对MongoDB的操作简单封装

    使用MongoDB的Go驱动库 mgo,对MongoDB的操作做一下简单封装 初始化 操作没有用户权限的MongoDB var globalS *mgo.Session func init() { s, err := mgo.Dial(dialInfo) if err ! Session: %s\n", err) } globalS = s } 如果MongoDB设置了用户权限需要使用下面的方法操作 func init() { dialInfo := &mgo.DialInfo Session,导致连接数量超过设置的最大值 获取文档对象c := Session.DB(db).C(collection) func connect(db, collection string) (*mgo.Session , *mgo.Collection) { ms := globalS.Copy() c := ms.DB(db).C(collection) ms.SetMode(mgo.Monotonic

    2.5K30发布于 2019-02-22
领券