Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我需要关闭pymongo会话吗?_Python_Mongodb_Pymongo - Fatal编程技术网

Python 我需要关闭pymongo会话吗?

Python 我需要关闭pymongo会话吗?,python,mongodb,pymongo,Python,Mongodb,Pymongo,上面允许我使用conn\u pf.close()关闭会话 但是: 不允许我使用conn\u pfname.close关闭。它说集合类型没有close方法。在第二个案例中,我真的打开了会话吗?不,您不需要关闭PyMongo连接。让它们保持打开状态,以便PyMongo的连接池为您提供最高效的性能: 此外,PyMongo多年前删除了“Connection”和“slave_ok”等旧API,请升级到最新版本,以获得最正确、最高效的驱动程序。使用MongoClient: 我担心的是,如果我打开了多个连接

上面允许我使用
conn\u pf.close()
关闭会话

但是:


不允许我使用
conn\u pfname.close关闭。它说集合类型没有close方法。在第二个案例中,我真的打开了会话吗?

不,您不需要关闭PyMongo连接。让它们保持打开状态,以便PyMongo的连接池为您提供最高效的性能:

此外,PyMongo多年前删除了“Connection”和“slave_ok”等旧API,请升级到最新版本,以获得最正确、最高效的驱动程序。使用MongoClient:


我担心的是,如果我打开了多个连接(比如200个),但没有关闭它们,那么另一台生产机器(比我的机器更重要)可能很难在mongo上打开会话,因为我通过脚本打开了太多空闲连接。我说的对吗?只创建一个MongoClient并在程序期间使用它。如果您的程序不是多线程的,MongoClient将打开到MongoDB的2个连接。请参阅连接池常见问题解答:虽然这可能是真的,但打开太多可能会导致问题。特别是因为您可以从一个源进行多个连接。@snooze92-我使用.close(),它会关闭Jupyter笔记本中的两个连接。@snooze92-明白。唯一的问题是,如果他们每次运行代码时都不断打开新连接:
conn_pf = pymongo.Connection(ip,27023,slaveOk=True)
conn_pfname = pymongo.Connection(ip,27023,slaveOk=True).__getattr__(resource+"_pfname").__getattr__("data")