连接选项
本节将说明驱动程序支持的 MongoDB 连接和身份验证选项。您可以将连接选项作为连接 URI 的参数传递,以指定客户端的行为。
名称 | 接受的值 | 默认值 | 说明 |
---|---|---|---|
appName | 字符串 | null | 指定驱动程序在连接握手过程中传递到客户端元数据中的服务器的应用名称。当建立此连接时,驱动程序会向 MongoDB 发送 appName 值。此值将记录在日志文件、慢速查询日志和配置文件集合中。 |
authMechanism | 字符串 | null | 指定用于连接到服务器的身份验证机制方法。如果不指定值,驱动程序将使用默认机制,即 SCRAM-SHA-1 或 SCRAM-SHA-256 ,具体取决于服务器版本。有关可用的身份验证机制,请参阅身份验证机制 。 |
authMechanismProperties | 逗号分隔的键值对,例如 "opt1:val1,opt2:val2" | null | 指定为身份验证提供的其他选项,例如为 GSSAPI 启用主机名规范化。 |
authSource | 字符串 | null | 指定连接要对其进行身份验证的数据库。 |
compressors | 逗号分隔的字符串列表,例如 "snappy,zlib,zstd" | null | 指定发送到服务器或从服务器接收的传输协议消息的允许压缩类型。请参阅网络压缩,获取更多信息。 |
connectTimeoutMS | non-negative integer | 30000 | 指定在引发错误之前等待与服务器建立单个 TCP 套接字连接的时间量(以毫秒为单位)。指定 0 会禁用连接超时。 |
directConnection | 布尔 | false | 指定是否强制将所有操作分派到连接 URI 中指定的主机。 |
enableUtf8Validation | 布尔 | true | 指定 指定 此外,还可在 Node.js 代码中设置 UTF-8 验证。要了解有关 UTF-8 字符的更多信息,请参阅维基百科上的 UTF-8。 |
heartbeatFrequencyMS | 大于或等于 500 的整数。 | null | 指定服务器定期监控检查的间隔时间(以毫秒为单位)。 |
journal | 布尔 | null | 指定客户端的日志写关注。有关更多信息,请参阅写关注。 |
loadBalanced | 布尔 | null | 指定驱动程序是否连接到负载均衡器。 |
localThresholdMS | non-negative integer | 15 | 指定用来在合适的服务器之间进行选择的往返时间的延迟窗口大小(以毫秒为单位)。指定 0 意味着无需等待,即可用的最快服务器。 |
maxIdleTimeMS | non-negative integer | 0 | 指定连接在关闭之前可以处于空闲状态的时间(以毫秒为单位)。指定 0 意味着没有最小值。 |
maxPoolSize | non-negative integer | 100 | 指定驱动程序可在连接池中创建的客户端或连接的最大数量。此数量包括正在使用的连接。 |
maxConnecting | non-negative integer | 2 | 指定驱动程序的连接池可以同时建立的最大连接数。 |
maxStalenessSeconds | -1,或大于或等于 90 的整数 | null | 指定从节点可能遇到但仍有资格供服务器选择的最大复制延迟(以挂钟时间为单位)。指定 -1 意味着没有最大值。 |
minPoolSize | non-negative integer | 0 | 指定驱动程序在连接池中创建并维持的连接数。即使没有发生任何操作,连接池中也要保持这一连接数。此数量包括正在使用的连接。 |
proxyHost | 字符串 | null | 指定 SOCKS5 代理的 IPv4 地址、IPv6 地址或域名。 |
代理端口 | non-negative integer | null | 指定 SOCKS5 代理服务器的 TCP 端口号。如果设置了 proxyHost 选项,则此选项的值默认为 1080 。 |
proxyUsername | 字符串 | null | 指定用于向 SOCKS5 代理服务器进行身份验证的用户名。如果将此选项设置为零长度的字符串,驱动程序将忽略它。 |
proxyPassword | 字符串 | null | 指定用于向 SOCKS5 代理服务器进行身份验证的密码。如果将此选项设置为零长度的字符串,驱动程序将忽略它。 |
readConcernLevel | 字符串 | null | 指定客户端的默认读关注。有关更多信息,请参阅读关注。 |
readPreference | 字符串 | "primary" | 指定客户端的默认读取偏好(不包括标签)。有关更多信息,请参见读取偏好。 |
readPreferenceTags | 逗号分隔的键:值对,例如 "dc:ny,rack:1",而且 "dc:ny" 可以指定多次,该键的每个实例都是一个单独的标签集 | null | 指定客户端的默认读取偏好标签。仅当读取偏好不是主节点("primary")模式时,此选项才有效。 驱动程序将 URI 中标签的顺序用作读取偏好的顺序。 |
replicaSet | 字符串 | null | 指定要连接到的副本集的名称。 |
retryReads | 布尔 | true | 允许重试读取。 |
retryWrites | 布尔 | true | 启用可重试写入。 |
serverMonitoringMode | auto , stream , poll | auto | 指定驱动程序监控器使用的监控模式。当此选项设置为 auto 时,监控模式由驱动程序运行的环境决定。该驱动程序在功能即服务 (FaaS) 环境中使用轮询模式,在其他环境中使用流媒体模式。 |
serverSelectionTimeoutMS | non-negative integer | 30000 | 指定在抛出错误之前,为服务器选择阻塞的超时时间(以毫秒为单位)。 |
serverSelectionTryOnce | 布尔 | true | 指定在服务器选择失败后只扫描拓扑结构一次,而不是重复扫描直到服务器选择超时。 |
socketTimeoutMS | non-negative integer | 0 | 指定套接字超时前尝试发送或接收的时间(以毫秒为单位)。指定 0 表示无超时。 |
SrvMaxHosts | non-negative integer | 0 | 指定最初填充种子列表,或在 SRV 轮询期间向拓扑结构中添加新主机时,随机选择的 SRV 结果的最大数量。 |
srvServiceName | 符合 RFC 6335 的有效 SRV 服务名称 | "mongodb" | 指定在初始 DNS 种子列表发现中用于 SRV 查找的服务名称。 |
ssl | 布尔 | false | ssl 是 tls 选项的别名。 |
TLS | 布尔 | false | 指定与服务器的连接是否需要 TLS。使用 "mongodb+srv" 的 srvServiceName 或指定其他 tls 前缀选项会将 tls 的值隐式设置为 true 。 |
tlsAllowInvalidCertificates | 布尔 | false | 指定当服务器的 TLS 证书无效时,驱动程序是否产生一个错误。将此选项设置为 true (仅用于测试目的)。 |
tlsAllowInvalidHostnames | 布尔 | false | 指定当服务器主机名与 TLS 证书指定的主机名匹配时,驱动程序是否会生成错误。将此选项设为 true 以仅供测试之用。 |
tlsCAFile | 字符串 | null | 指定一个文件的路径,此文件中包含建立 TLS 连接时要信任的单个或一组证书颁发机构。要了解有关如何设置此连接选项的更多信息,请参阅 TLS 指南的提供证书文件路径部分。 |
tlsCertificateKeyFile | 字符串 | null | 指定客户端证书文件或客户端私钥文件的路径。如果同时需要这两份文件,则必须将它们合并起来。要了解设置此连接选项的更多信息,请参阅 TLS 指南的提供证书文件路径部分。 |
tlsCertificateKeyFilePassword | 字符串 | null | 指定密码,该密码负责解密用于 TLS 连接的客户端私钥。 |
tlsInsecure | 布尔 | false | 指定尽可能放宽 TLS 约束,如允许无效证书或主机名不匹配。将此选项设置为 true ,仅供测试之用。 |
w | 非负整数或字符串 | null | 指定客户端的默认写关注 "w" 字段。 |
waitQueueTimeoutMS | non-negative integer | 0 | 指定在被判定超时之前,尝试从服务器的连接池中获取一个连接所允许花费的最长时间(以毫秒为单位)。 |
wtimeoutMS | non-negative integer | null | 指定客户端的默认写关注超时字段。 |
zlibCompressionLevel | 介于 -1 和 9 (含)之间的整数 | -1 |