1

我试图为 mongo-go-driver 搜索 clientOptions 的默认值。

我正在尝试通过以下方式启动新客户端:

        opts := options.ClientOptions{}
    opts.ApplyURI(connectionURI)
    sharedConnection, err = mongo.NewClient(&opts)

我想知道 ConnectTimeout、MaxPoolSize、MaxConnIdleTime 等少数 clientOptions 的默认值是什么。

   type ClientOptions struct {
    ConnectTimeout         *time.Duration
    Compressors            []string
    Dialer                 ContextDialer
    HeartbeatInterval      *time.Duration
    LocalThreshold         *time.Duration
    MaxConnIdleTime        *time.Duration
    MaxPoolSize            *uint16
    Monitor                *event.CommandMonitor
    ReadConcern            *readconcern.ReadConcern
    ReadPreference         *readpref.ReadPref
    Registry               *bsoncodec.Registry
    RetryWrites            *bool
    ServerSelectionTimeout *time.Duration
    Direct                 *bool
    SocketTimeout          *time.Duration
    TLSConfig              *tls.Config
    WriteConcern           *writeconcern.WriteConcern
    ZlibLevel              *int
   }
4

2 回答 2

1

以下默认基于mongo-go-driverv1.1.x 和 MongoDB 服务器 v4.2。您还可以找到有关MongoDB 驱动程序规范的更多信息/行为。

ConnectTimeout         30 * time.Second
Compressors            nil (compression will not be used)
Dialer                 net.Dialer with a 300 second keepalive time
HeartbeatInterval      10 * time.Second
LocalThreshold         15 * time.Millisecond
MaxConnIdleTime        nil (no limit)
MaxPoolSize            100
Monitor                nil
ReadConcern            nil (server default `local`)
ReadPreference         readpref.Primary()
Registry               bson.DefaultRegistry
RetryWrites            true
ServerSelectionTimeout 30 * time.Second
Direct                 false
SocketTimeout          nil (infinite)
TLSConfig              nil
WriteConcern           nil (server default `w:1`)
ZlibLevel              6 (if zlib compression enabled)
于 2019-09-11T06:05:29.520 回答
0

如果没有流量来设置默认值,那么它将设置为零值。零值是在声明变量且未显式初始化时,将为其分配具有默认值的存储空间

  1. ConnectTimeout --> time.Duration,数据类型默认值 = 0s b.
  2. MaxPoolSize --> uint16,数据类型默认值 = 0
  3. MaxConnIdleTime --> time.Duration,数据类型默认值 = 0s

其他 :

  1. bool --> 默认值为 false
  2. 字符串 --> 默认值为 ""
  3. int ---> 默认值为 0
于 2019-09-06T22:42:39.377 回答