有人可以解释我SetSafe()
的默认值&Safe{}
和SetSafe(nil)
之间的区别吗?
根据mgo godoc:
如果安全参数为nil,则会话处于不安全模式,并且写入将变为“即发即忘”,而不会进行错误检查。不安全模式更快,因为操作不会等待确认。
如果safe参数不是nil,则任何更改查询(insert,update,...)后面都会跟一个带有指定参数的getLastError命令,以确保正确处理请求。
默认为& Safe {},表示检查错误并使用所有字段的默认行为。
查看code,它似乎会在mongo中使用值getLastError
调用j:false, w:0, wtimeout:0
command。这意味着它不会从mongo返回任何错误,并且在调用SetSafe(nil)
时行为似乎相似。
那么在使用SetSafe(&Safe{})
调用mongo时,我期望收到什么错误?
我在使用Mongo 3.0.9。