【问题标题】:Do I need to close MongoDB client?我需要关闭 MongoDB 客户端吗?
【发布时间】:2021-07-26 03:19:03
【问题描述】:

我正在开发一个不和谐的机器人,但我不确定是否需要关闭 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()

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

【问题讨论】:

    标签: mongodb discord pymongo


    【解决方案1】:

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

    【讨论】:

    • 请接受一个答案,这样这个问题就可以结束了。
    【解决方案2】:

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

    1. 在拨打get_queue_info(queue)后拨打mongo.close()
    2. 不只是返回数据,而是将其保存到 var,然后关闭连接并返回 var。

    编辑: 查找后,您无需手动关闭它。 您应该利用连接池,只需创建一个持续整个进程生命周期的 MongoClient。 我认为您的机器人执行命令非常缓慢的原因是 MongoDB 占用了太多 CPU(查看您的架构或索引设计)

    【讨论】:

      【解决方案3】:

      您无需关闭连接。 Pymongo 管理连接,因此无需整理。

      【讨论】:

        猜你喜欢
        • 2011-11-07
        • 1970-01-01
        • 2011-03-23
        • 2013-12-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-16
        • 2013-01-10
        相关资源
        最近更新 更多