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

时间:2015-01-14 19:21:57

标签: python mongodb pymongo

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

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"""

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

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

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

1 个答案:

答案 0 :(得分:1)

您的代码是正确的。您应该继续对应用程序中的所有操作使用相同的MongoClient实例,这将确保所有操作共享相同的连接池并使用尽可能少的连接 - 这将最大化您的效率。 MongoClient是线程安全的,因此即使您在多个线程上进行并发操作,这也会起作用。