对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

连接池

在本指南中,您可以学习;了解PyMongo如何使用连接池来管理与MongoDB 部署的连接,以及如何在应用应用程序中配置连接池设置。

连接池是PyMongo维护的打开数据库连接的缓存。 当您的应用程序请求连接到MongoDB时, PyMongo无缝地从池中获取连接,执行操作,然后将连接返回到池中以供重用。

连接池有助于减少应用程序延迟和PyMongo创建新连接的次数。

您可以在 MongoClient对象或连接 URI 中指定以下连接池设置:

设置
说明

connectTimeoutMS

PyMongo在建立新连接时在超时之前等待的时间。数据类型:

int
默认值:20000
MongoClient 示例:connectTimeoutMS = 40000
连接 URI 示例:connectTimeoutMS=40000

maxConnecting

每个池可以同时建立的最大连接数。如果达到此限制,则进一步的请求将等待,直到建立连接或将另一个正在使用的连接检回池中。数据类型:

int
默认值:2
MongoClient 示例:maxConnecting = 3
连接 URI 示例:maxConnecting=3

maxIdleTimeMS

连接在池中保持空闲状态的最长时间。当连接超过此限制时, PyMongo会关闭连接并将其从池中删除。将此值设置为高于应用程序的预期空闲时间,但低于防火墙或代理连接超时,以防止意外断开连接。数据类型:

int
默认值:None (无限制)
MongoClient 示例:maxIdleTimeMS = 60000
连接 URI 示例:maxIdleTimeMS=60000

maxPoolSize

池维护的最大并发连接数。如果达到最大池大小,则后续请求将等待,直到连接可用。数据类型:

int
默认值:100
MongoClient 示例:maxPoolSize = 150
连接 URI 示例:maxPoolSize=150

minPoolSize

连接池维护的并发连接最小数。如果因网络错误导致打开的连接数量低于此值,PyMongo 会尝试创建新连接以维护此最小值。

数据类型int
默认0
MongoClient 示例minPoolSize = 3
连接 URI 示例minPoolSize=3

socketTimeoutMS

PyMongo 在超时前等待服务器响应的时间长度。

数据类型int
默认None (无超时)
MongoClient 示例socketTimeoutMS = 100000
连接 URI 示例socketTimeoutMS=100000

waitQueueTimeoutMS

线程在连接池中等待连接变可用的时间,直到超时。

数据类型int
默认None (无超时)
MongoClient 示例waitQueueTimeoutMS = 100000
连接 URI 示例waitQueueTimeoutMS=100000

以下代码使用 maxPoolSize 参数创建一个最大连接池大小为 50 的客户端。选择SynchronousAsynchronous标签页以查看相应的代码:

client = MongoClient(host, port, maxPoolSize=50)
client = AsyncMongoClient(host, port, maxPoolSize=50)

以下代码创建一个配置与前面的示例相同的客户端,但使用了连接 URI:

client = MongoClient(host, port, maxPoolSize=50)
client = AsyncMongoClient(host, port, maxPoolSize=50)

要学习;了解有关连接池的更多信息,请参阅MongoDB Server手册中的连接池概述。

要进一步了解本指南所讨论的任何方法或类型,请参阅以下 API 文档: