mongodb - 在多个 goroutine 中使用一个 MongoDB 连接
问题描述
我的 go 代码正在像这样连接到 MongoDB:
uri := "mongodb://localhost:27017"
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
client, err := mongo.Connect(ctx, options.Client().ApplyUIR(uri))
if err != nil {
panic(err)
}
我想创建几个定期查询数据库的 goroutines,并且不确定让每个 goroutine 使用client
是否安全。让多个 goroutine 与同一个数据库交互的最传统方法是什么?
解决方案
单个客户端实例在多个 goroutine 中使用是安全的。从文档:
Client 是一个句柄,表示与 MongoDB 部署的连接池。多个 goroutine 并发使用它是安全的。
推荐阅读
- ios - Firebase Cloud Messaging 通知未显示在 iOS 设备上(前台和后台)
- excel - 用 5-10 秒刷新每个 Excel 表
- java - Java Arrays.binarySearch 在二维 int[][] 上使用 Comparator.comparingInt()
- json - 如何使用 jq 将混合 JSON 转换为 CSV
- python - PyCharm 调试子进程/Popen 收到错误消息
- ios - swiftui 三视图栈布局,中间栈占用空间
- sprite-kit - SKSpriteKit:在设备旋转时重新定位节点改变大小
- python - 使用 Bert(拥抱脸)分类器保存 tf.keras 模型时遇到问题
- python - 如何在我正在绘制的每个子图上添加垂直线?
- c# - Visual Studio 的构建后事件