简单查询的上下文

时间:2020-07-05 02:42:33

标签: mongodb go

我正在MongoDB上进行简单的数据库查询,并且看到两种不同的调用Context的方法。

超时的第一种方式:

add.signal

第二种方法,直接使用context.Background()

进行调用
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
result := collection.FindOne(ctx, bson.M{"_id": userID})

如果我使用第二种方法并且延迟很长,它会永远等待还是一次超时?
我发现第二种解决方案使用更少的代码行就更优雅,但是由于我是Go语言的新手,所以我可能会误解风险。

1 个答案:

答案 0 :(得分:1)

如果您通过URI options设置套接字超时和连接超时,则当超过这些超时时,第二个选项应该超时。