将客户端和数据库连接放在 python 文件中的什么位置

Where to put client and db connection in python file

所以我正在构建一个 mongo 数据库 class,它将提供向插入服务插入文档的访问权限,并提供通过查询服务查看文档的访问权限。现在我的 database.py class 有以下内容:

import pymongo 

client = pymongo.MongoClient('mongodb://localhost:27017/')
db_connection = client['my_database']

class DB_Object(object):

    """ A class providing structure and access to the Database """

    def add_document(self, json_obj):
        coll = db_connection["some collection"]
        document = {
            "name" : "imma name",
            "raw value" : 777,
            "converted value" : 333
        }
        coll.insert(document)

    def query_response(self, query):
            """query logic here"""

如果我想要并发查询和插入,并且这个 class 被多个服务调用,这行的正确位置是:

client = pymongo.MongoClient('mongodb://localhost:27017/')
db_connection = client['my_database']

这是提供访问权限的标准方式吗?

您的代码是正确的。您应该继续对应用程序中的所有操作使用相同的 MongoClient 实例,这将确保所有操作共享相同的连接池并使用尽可能少的连接——这将最大限度地提高您的效率。 MongoClient 是线程安全的,因此即使您在多个线程上有并发操作,它也能正常工作。