所以我正在构建一个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']
这是提供访问权限的标准方法吗?
答案 0 :(得分:1)
您的代码是正确的。您应该继续对应用程序中的所有操作使用相同的MongoClient实例,这将确保所有操作共享相同的连接池并使用尽可能少的连接 - 这将最大化您的效率。 MongoClient是线程安全的,因此即使您在多个线程上进行并发操作,这也会起作用。