Golang 报告“超出上下文截止日期”与 MongoDB

木木的*_*的木头 7 go mongodb

我写了一个更新函数,但是多次执行会报错context deadline exceeded

我的功能:

func Update(link string, m bson.M) {
    configInfo := config.Config()

    // client := GetInstance().client
    // ctx := GetInstance().ctx

    client, _ := mongo.NewClient(options.Client().ApplyURI("mongodb://localhost:27017"))
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("test")
    lianjia := db.Collection("test")
    _, err = lianjia.UpdateOne(ctx, bson.M{"Link": link}, bson.M{"$set": m})
    if err != nil {
        fmt.Print("update error!")
        fmt.Println(err)
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

update error!context deadline exceeded
Run Code Online (Sandbox Code Playgroud)

小智 2

改成 mongodb://localhost:27017 mongodb://127.0.0.1:27017/