文档菜单

文档首页开发应用Python 驱动程序PyMongo

指定连接选项

本页内容

  • 概述
  • 连接选项

本节介绍了 PyMongo 中可用的 MongoDB 连接和认证选项。您可以使用连接 URI 或 MongoClient 构造函数的参数来配置您的连接。MongoClient

如果将连接 URI 传递给 MongoClient 构造函数,则可以在字符串中包含连接选项,作为 <name>=<value> 对。在以下示例中,连接 URI 包含了 connectTimeoutMS 选项,其值为 60000,以及 tls 选项,其值为 true

uri = "mongodb://<hostname>:<port>/?connectTimeoutMS=60000&tls=true"
client = pymongo.MongoClient(uri)

您可以将连接选项作为参数传递给 MongoClient 构造函数,而不是将它们包含在连接 URI 中。以这种方式配置连接可以使您更容易在运行时更改设置,并有助于您在编译期间捕获错误。以下示例显示了如何使用 MongoClient 构造函数设置连接选项

uri = "mongodb://<hostname>:<port>"
client = pymongo.MongoClient(uri, connectTimeoutMS=60000, tls=True)

以下部分描述了 PyMongo 中可用的连接选项。如果 MongoClient 参数映射到连接字符串中的多个选项,则 连接 URI 示例 显示所有相关选项。

连接选项
描述
compressors
按顺序,发送到或从服务器接收的线协议消息的首选压缩类型。
驱动程序使用服务器支持的这些压缩类型中的第一个。

数据类型: str
默认值: None
MongoClient 示例: compressors = "snappy,zstd,zlib"
连接 URI 示例: compressors=snappy,zstd,zlib
zlibCompressionLevel
zlib 要使用的压缩级别。此选项接受
一个介于 -19 之间的整数值

- -1: (默认)。zlib 使用其默认压缩级别(通常为 6)。
- 0: 不压缩。
- 1: 最快速度但压缩最低。
- 9: 最佳压缩但速度最慢。

数据类型: int
默认值: -1
MongoClient 示例: zlibCompressionLevel = 3
连接 URI 示例: zlibCompressionLevel=3
连接选项
描述
timeoutMS
每个驱动程序操作必须在其中完成的毫秒数。如果
操作未在指定的时间内完成,PyMongo 会引发超时异常。
有关更多信息,请参阅 限制服务器执行时间

数据类型: int
默认值: None
MongoClient 示例: timeoutMS = 10000
连接 URI 示例: timeoutMs=10000
连接选项
描述
server_selector
PyMongo 调用的用户定义的 Python 函数,用于选择运行操作的
服务器。有关更多信息,请参阅

数据类型: callable
默认值: None
MongoClient 示例: server_selector = your_function
连接 URI 示例: N/A
连接选项
描述
authMechanism
PyMongo 用于对应用程序进行身份验证的机制。有效
选项在MECHANISMS 中定义。

数据类型: str
默认值: 连接到 MongoDB v4.0 或更高版本时为 "SCRAM-SHA-256"
"SCRAM-SHA-1" 当连接到 MongoDB v3.0 通过 v3.13。
MongoClient 示例: authMechanism = "MONGODB-X509"
连接 URI 示例: authMechanism=MONGODB-X509
authMechanismProperties
特定于身份验证机制的选项。并非所有身份验证
机制都需要。

数据类型: str
默认值: ""
MongoClient 示例: authMechanismProperties = "AWS_SESSION_TOKEN:12345"
连接 URI 示例: authMechanismProperties=AWS_SESSION_TOKEN:12435
authSource
用于认证的数据库。

数据类型: str
默认值: 连接 URI 中的数据库,或如果没有提供则默认为 "admin"
MongoClient 示例: authSource = "admin"
连接 URI 示例: authSource=admin
username
用于认证的用户名。当此选项包含在连接 URI 中时,您必须进行百分号转义。
连接 URI 示例: username=my+user

数据类型: str
默认值: ""
MongoClient 示例: username = "my user"
连接 URI 示例: username=my+user
password
用于认证的密码。当此选项包含在连接 URI 中时,您必须进行百分号转义。
连接 URI 示例: username=my+user

数据类型: str
默认值: ""
MongoClient 示例: password = "strong password"
连接 URI 示例: password=strong+password

有关本节中连接选项的更多信息,请参阅认证机制。

连接选项
描述
replicaSet
指定要连接到的副本集名称。

数据类型: str
默认值: null
MongoClient 示例: replicaSet='replicaSetName'
连接 URI 示例: replicaSet=replicaSetName
directConnection
是否仅连接到副本集的主成员。

数据类型: bool
默认值: False
MongoClient 示例: directConnection=True
连接 URI 示例: directConnection=true
readPreference
指定客户端的读取偏好设置。

数据类型: read_preferences
默认值: ReadPreference.Primary
MongoClient 示例: readPreference=ReadPreference.SECONDARY_PREFERRED
连接 URI 示例: readPreference=secondaryPreferred
readConcern
指定客户端的读取关注设置。有关更多信息,请参阅 /reference/read-concern/

数据类型: str
默认值: None
MongoClient 示例: readConcern="majority"
连接 URI 示例: readConcern=majority
writeConcern
指定客户端的写入关注设置。有关更多信息,请参阅/reference/write-concern/

数据类型: str
默认值: None
MongoClient 示例: writeConcern="majority"
连接 URI 示例: writeConcern=majority
localThresholdMS
副本集成员资格的延迟窗口。如果成员的往返 ping 响应时间超过最快服务器的往返 ping 时间加上此值,则服务器不适用于选择。

数据类型: read_preferences
默认值: ``int``
MongoClient 示例: localThresholdMS=35
连接 URI 示例: localThresholdMS=35

有关本节中连接选项的更多信息,请参阅数据库和集合。

← 选择连接目标

本页内容