前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MongoDB 学习笔记3 - 使用 mgo 连接MongoDB

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

作者头像
张云飞Vir
发布2020-04-09 14:41:53
1.5K0
发布2020-04-09 14:41:53
举报
文章被收录于专栏:写代码和思考写代码和思考

0. 背景

mgo 是一个连接 MongoDB 数据库的客户端程序和驱动。我们使用它连接 MongoDB。

mgo

1. 介绍

mgo:(发音为mango)是一个用于Go语言的MongoDB驱动程序,它在一个非常简单的API下实现了丰富和经过良好测试的特性选择,遵循了标准的Go习惯用法。

突出特点:

  • 集群发现和通信:mgo提供自动化的集群拓扑发现和维护。
  • 故障转移管理:当主服务器发生更改时,mgo将自动进行故障转移。
  • 同步和并发:同一套接字上的并发操作在交付之前不会等待前一个操作的往返。当从网络接收到第一个文档时,也可以立即开始处理文档,并在后台继续接收。
  • 结果预取: 当处理当前批处理中已确定的百分比时,将自动请求下一批结果。
  • 灵活的序列化: mgo通过gobson支持文档的灵活编组和解组
  • 与池集成的身份验证支持:mgo提供身份验证支持,具有强大的连接池集成。
  • GridFS支持:mgo可用于向MongoDB发送和接收文件。
  • 全面测试:自动化测试还涵盖了恶劣的情况,比如主故障转移。

2. 操作示例

2.1 安装

代码语言:javascript
复制
go get gopkg.in/mgo.v2

2.2 导入

代码语言:javascript
复制
import (
        "gopkg.in/mgo.v2"
        "gopkg.in/mgo.v2/bson"
)

2.3 建立连接

使用 mgo.Dial() 建立连接,返回对象是个 session 。

代码语言:javascript
复制
 session, err := mgo.Dial("server1.example.com,server2.example.com")
        if err != nil {
                panic(err)
        }
        defer session.Close()

获得 集合

代码语言:javascript
复制
 c := session.DB("test").C("people")

插入数据

调用 Insert 方法。

代码语言:javascript
复制
        err = c.Insert(&Person{"Ale", "+55 53 8116 9639"},
                   &Person{"Cla", "+55 53 8402 8510"})
        if err != nil {
                log.Fatal(err)
        }

查询

调用Find方法。

代码语言:javascript
复制
        result := Person{}
        err = c.Find(bson.M{"name": "Ale"}).One(&result)
        if err != nil {
                log.Fatal(err)
        }

        fmt.Println("Phone:", result.Phone)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0. 背景
  • 1. 介绍
  • 2. 操作示例
    • 2.1 安装
      • 2.2 导入
        • 2.3 建立连接
          • 获得 集合
            • 插入数据
              • 查询
              相关产品与服务
              云数据库 MongoDB
              腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档