class 框架中的 PyMongo 客户端关闭

PyMongo client close in class framework

我有一个 Python class,我在初始化期间在其中创建 PyMongo MongoDB 连接(参见下面的代码)。我想在另一个脚本中实例化此 class,然后确保在脚本结束时关闭所有连接。如果我这样做,然后 运行 self.client.close() 如下所示,然后检查打开的连接,我得到一个 return 看起来好像仍有活动连接。我是不是想多了,所有连接实际上都关闭了?

class BaseClass():

    def __init__(self):
        self.client = MongoClient("url")
        self.cursor1 = self.client.get_database('db1').get_collection('col1')
        self.cursor2 = self.client.get_database('db2').get_collection('col2')

test = BaseClass()
test.client.close()
test.client.connections
Database(MongoClient(host=['url'], document_class=dict, tz_aware=False, connect=True, retrywrites=True, w='majority', authsource='admin', replicaset='url', ssl=True), 'connections')

是的,你想多了;不需要关闭连接,pymongo 的连接池会为你解决这个问题。

如果您需要创建大量此类对象,创建一个 MongoClient 连接然后将其作为参数传递给每个 class.

会更高效