在 Go 语言中,调用 MongoDB 通常涉及使用 MongoDB Go 驱动来执行数据库操作。

在 Go 语言中,调用 MongoDB 通常涉及使用 MongoDB Go 驱动来执行数据库操作。以下是一个完整的示例代码,展示如何连接到 MongoDB 数据库、插入文档、查询文档以及关闭连接。

示例代码

go

package main import ( "" "fmt" "log" "time" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options") func main() { // 设置 MongoDB 客户端选项 clientOptions := options.Client().ApplyURI("mongodb://localhost:27017") // 连接到 MongoDB client, err := mongo.Connect(context.TODO(), clientOptions) if err != nil { log.Fatal(err) } defer func() { if err = client.Disconnect(context.TODO()); err != nil { log.Fatal(err) } }() // 检查连接 ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) defer cancel() err = client.Ping(ctx, nil) if err != nil { log.Fatal(err) } fmt.Println("Connected to MongoDB!") // 选择数据库和集合 database := client.Database("testdb") collection := database.Collection("testcollection") // 插入文档 insertResult, err := collection.InsertOne(ctx, bson.D{ {Key: "name", Value: "Alice"}, {Key: "age", Value: 30}, {Key: "city", Value: "New York"}, }) if err != nil { log.Fatal(err) } fmt.Println("Inserted document ID:", insertResult.InsertedID) // 查询文档 var result bson.M err = collection.FindOne(ctx, bson.D{{Key: "name", Value: "Alice"}}).Decode(&result) if err != nil { log.Fatal(err) } fmt.Println("Found document:", result) // 示例:插入多个文档(可选) // insertManyResult, err := collection.InsertMany(ctx, []interface{}{ // bson.D{{Key: "name", Value: "Bob"}, {Key: "age", Value: 25}, {Key: "city", Value: "Los Angeles"}}, // bson.D{{Key: "name", Value: "Charlie"}, {Key: "age", Value: 35}, {Key: "city", Value: "Chicago"}}, // }) // if err != nil { // log.Fatal(err) // } // fmt.Println("Inserted multiple document IDs:", insertManyResult.InsertedIDs)}

代码说明

jrhz.info
  1. 连接到 MongoDB
  • 使用 mongo.Connect 连接到 MongoDB 『服务器』。
  • 使用 client.Ping 检查连接是否成功。
  1. 选择数据库和集合
  • 使用 client.Database("testdb") 选择数据库。
  • 使用 database.Collection("testcollection") 选择集合。
  1. 插入文档
  • 使用 collection.InsertOne 插入一个文档。
  • 文档以 bson.D 格式表示,bson.D 是一个有序的键值对列表。
  1. 查询文档
  • 使用 collection.FindOne 查询单个文档。
  • 使用 Decode 方法将查询结果解码为 bson.M 类型。
  1. 上下文管理
  • 使用 context.WithTimeout 创建带有超时的上下文,以防止操作挂起。
  1. 关闭连接
  • 使用 client.Disconnect 在程序结束时关闭与 MongoDB 的连接。

运行代码

  1. 确保 MongoDB 『服务器』正在运行
  • 默认情况下,代码连接到 mongodb://localhost:27017。
  • 如果 MongoDB 运行在其他地址或端口,请修改 ApplyURI 中的 URI。
  1. 运行代码
  2. bash
  3. go run main.go
  4. 查看输出
  • 如果连接成功,将输出 Connected to MongoDB!。
  • 如果插入和查询成功,将输出插入的文档 ID 和查询结果。

注意事项

  • MongoDB 版本:确保 MongoDB 『服务器』版本为 2.6 或更高。
  • Go 版本:建议使用 Go 1.13 或更高版本。
  • 依赖管理:确保已安装 MongoDB Go 驱动,可以通过 go get go.mongodb.org/mongo-driver/mongo 安装。

通过这个示例,您可以了解如何在 Go 中使用 MongoDB Go 驱动进行基本的数据库操作,包括连接、插入和查询文档。

特别声明:[在 Go 语言中,调用 MongoDB 通常涉及使用 MongoDB Go 驱动来执行数据库操作。] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

印度女演员普里亚,令人难忘的美丽,令人叹息的结局(印度女演员vasundhara)

于是这个小机灵鬼开启了她的环游世界之旅,简直是把见世面这三个字演绎到了极致。 说到普里亚和切丹的关系,那可真是一出精彩纷呈的戏码啊! 凶手居然是切丹的两个儿子和普里亚的女仆,这操作简直是把蛇鼠一窝演绎到了极…

印度女演员普里亚,令人难忘的美丽,令人叹息的结局(印度女演员vasundhara)

『王传君』评论区沦陷!拿奖感谢『白百何』惹争议,被质疑内涵对方没有奖(怎么评价『王传君』)

备受期待的《春树》本是本届电影节的热门候选,男女主角🎭️双双入围演技奖项。更具戏剧性的是,《春树》导演张律紧接着荣获最佳导演奖,让这场风波再度升级! 现场观众也透露,『王传君』的角色在片中发挥空间有限,这让获奖结…

『王传君』评论区沦陷!拿奖感谢『白百何』惹争议,被质疑内涵对方没有奖(怎么评价『王传君』)

KASAHARA笠原理化 CL-203N 型盐浓度计

氯化物含量:0.001至1.999千克立方米(设定单位水体积后的计算值) 盐度:误差在±2%以内(输入量相同的情况下); 氯化物含量计算方法为:新鲜混凝土中水中氯离子浓度与配合比设计中使用的单位水量相乘。…

KASAHARA笠原理化 CL-203N 型盐浓度计

婴儿按摩的介绍(婴儿按摩操作视频教程)

婴儿按摩是一种通过轻柔手法刺激婴儿皮肤和肌肉的护理方式,有助于促进生『长发』育、改善睡眠并增强亲子互动。这种护理主要包括抚触按摩、腹部按摩、四肢按摩等类型,应在环境温暖且婴儿情绪稳定时进行

婴儿按摩的介绍(婴儿按摩操作视频教程)

EA111发动机车系:涨紧器背后的隐形守护者(ea1111发动机)

EA111发动机车系中的发电机皮带涨紧器是保障车辆稳定运行的关键部件。本文将深入剖析这个看似低调却至关重要的组件,探讨其工作原理、安装场景及其对驾驶体验的影响。了解这些知识不仅有助于车主维护爱车,也能让你更好地理解现代汽车工程设计。

EA111发动机车系:涨紧器背后的隐形守护者(ea1111发动机)