Mongodb 设置mgo会话中的安全默认值

Mongodb 设置mgo会话中的安全默认值,mongodb,go,mgo,Mongodb,Go,Mgo,有人能给我解释一下SetSafe()的默认值是&Safe{}和SetSafe(nil)之间的区别吗 根据mgo: 如果safe参数为nil,则会话将被置于不安全模式,写入操作将变为激发和遗忘,而不会进行错误检查。不安全模式更快,因为操作不会等待确认 如果safe参数不是nil,任何更改的查询(insert、update,…)后面都会有一个带有指定参数的getLastError命令,以确保请求得到正确处理 默认值为&Safe{},这意味着检查错误并对所有字段使用默认行为 看一下,它似乎会在mong

有人能给我解释一下
SetSafe()
的默认值是
&Safe{}
SetSafe(nil)
之间的区别吗

根据mgo:

如果safe参数为nil,则会话将被置于不安全模式,写入操作将变为激发和遗忘,而不会进行错误检查。不安全模式更快,因为操作不会等待确认

如果safe参数不是nil,任何更改的查询(insert、update,…)后面都会有一个带有指定参数的getLastError命令,以确保请求得到正确处理

默认值为&Safe{},这意味着检查错误并对所有字段使用默认行为

看一下,它似乎会在mongo中调用
getLastError
,值为
j:false、w:0、wtimeout:0
。这意味着它不会从mongo返回任何错误,并且调用
SetSafe(nil)
时的行为似乎类似

那么,当使用
SetSafe(&Safe{})
调用mongo时,我将收到什么错误


我使用的是Mongo 3.0.9。

getLastError不是一个方法,它是一个结构外观。因此,他只需填充结构并返回它,而不检查任何mongo错误。我知道
getLastError
是一个结构。结构存储在
cmd
中,如下所述:-。然后,它似乎正在用值调用
j:false,w:0,wtimeout:0
getLastError
mongo命令。当他用
safeOp==nil
设置getLastError时,他还用1替代了结构中的命令,第1540Yeah行。它在同一函数中设置
s.safeOp
中的
cmd
,然后在
writeQuery
中执行命令,如图所示getLastError不是一个方法,它是一个结构外观。因此,他只需填充结构并返回它,而不检查任何mongo错误。我知道
getLastError
是一个结构。结构存储在
cmd
中,如下所述:-。然后,它似乎正在用值调用
j:false,w:0,wtimeout:0
getLastError
mongo命令。当他用
safeOp==nil
设置getLastError时,他还用1替代了结构中的命令,第1540Yeah行。它在同一功能中设置
s.safeOp
中的
cmd
,然后在
writeQuery
中执行命令,如图所示