我需要关闭MongoDB客户端吗?

我需要关闭MongoDB客户端吗?,mongodb,discord,pymongo,Mongodb,Discord,Pymongo,我正在使用discord机器人,但我不确定是否需要使用以下工具关闭MongoClient: client.close() 我遇到的问题是,我正在从一个集合返回一些数据,显然,在返回一些数据后,我无法关闭客户端 def get_queue_info(queue): if queue.isdigit(): queue = int(queue) return db['Groups'].find_one({"order":queue}) else: retu

我正在使用discord机器人,但我不确定是否需要使用以下工具关闭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()
如果我需要关闭客户,最好的方法是什么?目前,我有一个discord命令,它返回了一些东西

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()

我的机器人执行命令的速度非常慢,但我不确定这是否是因为没有关闭

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

  • 调用
    mongo.close()
    后,调用
    get\u queue\u info(queue)
  • 不只是返回数据,而是将其保存到var,然后关闭连接并返回var
  • 编辑: 在查找时,您不需要手动关闭它。 您应该利用连接池,只需创建一个持续整个流程生命周期的MongoClient。
    我认为您的bot执行命令非常慢的原因是MongoDB占用了太多CPU(请查看您的架构或索引设计)

    如果您真的想手动关闭,以下是几个选项:

  • 调用
    mongo.close()
    后,调用
    get\u queue\u info(queue)
  • 不只是返回数据,而是将其保存到var,然后关闭连接并返回var
  • 编辑: 在查找时,您不需要手动关闭它。 您应该利用连接池,只需创建一个持续整个流程生命周期的MongoClient。
    我认为您的bot执行命令非常慢的原因是MongoDB占用了大量CPU(查看您的架构或索引设计)

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

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

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

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

    请接受答案,以便关闭此问题。请接受答案,以便关闭此问题。