文档首页 → 开发应用 → Python 驱动程序 → PyMongo
指定连接选项
概述
本节介绍了 PyMongo 中可用的 MongoDB 连接和认证选项。您可以使用连接 URI 或 MongoClient
构造函数的参数来配置您的连接。MongoClient
使用连接 URI
如果将连接 URI 传递给 MongoClient
构造函数,则可以在字符串中包含连接选项,作为 <name>=<value>
对。在以下示例中,连接 URI 包含了 connectTimeoutMS
选项,其值为 60000
,以及 tls
选项,其值为 true
uri = "mongodb://<hostname>:<port>/?connectTimeoutMS=60000&tls=true" client = pymongo.MongoClient(uri)
使用 MongoClient

您可以将连接选项作为参数传递给 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 要使用的压缩级别。此选项接受 一个介于 -1 和 9 之间的整数值- -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 用于对应用程序进行身份验证的机制。有效 数据类型: 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 |
有关本节中连接选项的更多信息,请参阅数据库和集合。