如何关闭 mongodb python 连接?

我正在编写一个 Python 脚本,该脚本将一些数据写入 mongodb。 完成后,我需要关闭连接并释放一些资源。

Python 是怎么做到的?

76761 次浏览

MongoClient实例上使用 close()方法:

client = pymongo.MongoClient()


# some code here


client.close()

清理客户端资源并断开与 MongoDB 的连接。

通过发送一个或多个 endSessions 命令来结束此客户端创建的所有服务器会话。

关闭连接池中的所有套接字并停止监视器线程。

关闭 pymongo 连接的最安全方法是使用“ with”:

with pymongo.MongoClient(db_config['HOST']) as client:
db = client[ db_config['NAME']]
item = db["document"].find_one({'id':1})
print(item)

如果你的连接是加密的,MongoClient 不会重新连接:

    def close(self):
...
if self._encrypter:
# TODO: PYTHON-1921 Encrypted MongoClients cannot be re-opened.
self._encrypter.close()

另外,由于版本4.0,在调用 close()客户端之后,在任何情况下都不会重新连接。

   def close(self) -> None:
"""Cleanup client resources and disconnect from MongoDB.
End all server sessions created by this client by sending one or more
endSessions commands.
Close all sockets in the connection pools and stop the monitor threads.
.. versionchanged:: 4.0
Once closed, the client cannot be used again and any attempt will
raise :exc:`~pymongo.errors.InvalidOperation`.