我需要关闭MongoDB客户端吗



我正在开发一个discord bot,但我不确定是否需要使用关闭MongoClient

client.close()

我遇到的问题是,我从集合中返回了一些数据,很明显,在返回一些数据后,我无法关闭客户端。

如果我需要关闭客户,最好的方法是什么?目前,我有一个不和谐的命令,它返回了一些东西。

def get_queue_info(queue):
if queue.isdigit():
queue = int(queue)
return db['Groups'].find_one({"order":queue})
else:
return db['Groups'].find_one({"name":str(queue).upper()})
#obviously, this won't work
#mongo.close()

我的机器人执行命令很慢,但我不确定是不是因为没有关闭

您不需要关闭连接。Pymongo管理连接,因此不需要对其进行整理。

如果您真的想手动关闭,这里有几个选项:

  1. 呼叫get_queue_info(queue)后再呼叫mongo.close()
  2. 与其只返回数据,不如将其保存到var中,然后关闭连接并返回var

编辑:查找后,您不需要手动关闭它。您应该利用连接池,只需创建一个MongoClient,即可在整个流程中使用。我认为你的机器人执行命令很慢的原因是MongoDB占用了太多的CPU(查看你的模式或索引设计(

谢谢大家。我想我不需要关闭连接!

最新更新