Go语言学习笔记—golang操作MongoDB数据库

阅读: 评论:0

Go语言学习笔记—golang操作MongoDB数据库

Go语言学习笔记—golang操作MongoDB数据库

文章目录

  • 一 下载安装驱动
  • 二 go连接到MongoDB
  • 三 BSON简介
  • 四 添加文档
    • 4.1 创建一个结构体
    • 4.2 添加单个文档
    • 4.3 添加多个文档
  • 五 查找文档
  • 六 更新文档
  • 七 删除文档


一 下载安装驱动

官方文档

/go.mongodb/mongo-driver/mongo

下载地址


打开客户端

<

创建数据库

use golang_db;

创建集合

 db.createCollection("student");

下载驱动

go db/mongo-driver/mongo

二 go连接到MongoDB

package mainimport ("context""fmt""log""go.mongodb/mongo-driver/mongo""go.mongodb/mongo-driver/mongo/options"
)var client *mongo.Clientfunc initDB() {// 设置客户端连接配置clientOptions := options.Client().ApplyURI("mongodb://localhost:27017")// 连接到MongoDBvar err errorc, err := mongo.Connect(context.TODO(), clientOptions)if err != nil {log.Fatal(err)}// 检查连接err = c.Ping(context.TODO(), nil)if err != nil {log.Fatal(err)}fmt.Println("MongoDB 连接成功")client = c
}func main() {initDB()
}

运行结果:

[Running] go run "e:golang开发学习go_"
MongoDB 连接成功[Done] exited with code=0 in 2.819 seconds

三 BSON简介

MongoDB中的JSON文档存储在名为BSON(二进制编码的JSON)的二进制表中。与其他将JSON数据存储为简单字符串和数字的数据库不同,BSON编码扩展了JSON表示,使其包含额外的类型,如int、long、date、浮点数和decimal128。这使得应用程序更容易可靠地处理、排序和比较数据。

连接MongoDB地Go驱动程序中有两大类型表示BSON数据:DRaw

类型D家族被用来简洁地构建使用本地Go类型地BSON对象。这对于构造传递给MongoDB地命令特别有用。D家族包括四大类:

  • D:一个BSON文档。这种类型应该在顺序重要的情况下使用,比如MongoDB命令。
  • M:一张无序的map。它和D是一样的,只是它不保持顺序。
  • A:一个BSON数组。
  • E:D里面的一个元素。

要使用BSON,需要先导入下面的包:

go.mongodb/mongo-driver/bson

下面是一个使用D类型构建地过滤器文档的例子,它可以用来查找name字段与‘张三’或‘李四’匹配的文档:

bson.D{{"name",bson.D{{"$in",bson.A{"张三","李四"},}},
}}

Raw类型家族用于验证字节切片。还可以使用Lookup()从原始类型检索单个元素。如果不想将BSON反序列化成另一种类型的开销,那么这是非常有用的。

本文只使用D类型。

四 添加文档

4.1 创建一个结构体

type Student struct {Name stringAge  int
}

4.2 添加单个文档

方法:

func (coll *Collection) InsertOne(ctx context.Context, document interface{},opts ...*options.InsertOneOptions) (*InsertOneResult, error)

实例演示:

package mainimport ("context""fmt""log""go.mongodb/mongo-driver/mongo""go.mongodb/mongo-driver/mongo/options"
)var client *mongo.Clientfunc initDB() {// 设置客户端连接配置clientOptions := options.Client().ApplyURI("mongodb://localhost:27017")// 连接到MongoDBvar err errorc, err := mongo.Connect(context.TODO(), clientOptions)if err != nil {log.Fatal(err)}// 检查连接err = c.Ping(context.TODO()

本文发布于:2024-01-29 02:34:38,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170646688112078.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:学习笔记   语言   操作   数据库   golang
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23