MongoEngine:关闭连接

mal*_*lla 8 python connection disconnect mongoengine

我花了很多年的时间试图找到一个简单的例子,其中使用了MongoEngine并且关闭了连接.终于想出来并发布了我的代码.

mal*_*lla 7

我认为disconnect()应该最初使用,但它已被删除作为的同义词close().

from mongoengine import connect

def main():

    #connect to db
    db_client = connect('my_db', host='localhost', port=27017)

    #close the connection
    db_client.close()

if __name__ == "__main__":
    main()
Run Code Online (Sandbox Code Playgroud)


小智 5

我知道这是一个老问题,但是如果有人在搜索,我想我会给出一个替代答案。

close()实际上并没有从MongoEngine的连接列表中删除该连接。稍后尝试连接到其他数据库时,这会导致问题。

为了解决这个问题,我使用了mongoengine.connection.disconnect(即使未在中列出__all__)。我的代码如下所示:

from mongoengine import connect
from mongoengine.connection import disconnect

db = connect(alias='some_alias')

{do stuff}

disconnect(alias='some_alias')
Run Code Online (Sandbox Code Playgroud)

您也可以省略别名,因为在连接和断开连接中它将默认为“默认”。