刚刚开始学 go 语言,在写一个 mongodb 的插入,然后找了官方的 go-mongodb-driver 驱动,但是这玩意官方都不给个文档?只有 GitHub 上面写了十几行 demo 就完事了?这玩意不用连接池吗?到处翻博客,最后写了一个 update 出来,但是请求一高,就崩了
func Update(link string, m bson.M) {
start := time.Now().UnixNano()
configInfo := configs.Config()
//client := GetInstance().client
//ctx := GetInstance().ctx
client, _ := mongo.NewClient(options.Client().ApplyURI(configInfo["dburl"].(string)))
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
err := client.Connect(ctx)
if err != nil {
fmt.Print("connect error!")
fmt.Println(err)
}
db := client.Database(configInfo["dbDatabase"].(string))
lianjia := db.Collection(configInfo["dbCollection"].(string))
_, err = lianjia.UpdateOne(ctx, bson.M{"Link": link}, bson.M{"$set": m})
if err != nil {
fmt.Print("update error!")
fmt.Println(err)
}
fmt.Println((time.Now().UnixNano() - start)/ int64(time.Millisecond))
}
报错: update error!context deadline exceeded
这个错误是不是因为我每掉一次函数就新建一个连接?最终连接塞满了造成的?但是网上的文章没看见其他写法呀?官方也没个文档
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.