2015-01-14 2 views
0

Итак, я создаю класс базы данных mongo, который будет предоставлять доступ к вставке документов в службу вставки и предоставлять доступ для просмотра документов через службу запросов. Сейчас я следующий для моего database.py класса:Где разместить клиентское и db-соединение в файле python

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

Ваш код верен. Вы должны продолжать использовать один и тот же экземпляр MongoClient для всех операций в вашем приложении, это гарантирует, что все операции будут иметь один пул соединений и использовать как можно меньше подключений - это максимизирует эффективность. MongoClient является потокобезопасным, поэтому он будет работать, даже если у вас есть параллельные операции над несколькими потоками.

+0

@clifgray есть ли что-нибудь еще, что я могу вам помочь, или вы согласитесь с моим ответом как правильно? –

+0

спасибо за следующее, короткое наблюдение. Этот код будет запущен на компьютере с клиентской стороной, но база данных mongo будет находиться на главном сервере. Имеет ли смысл иметь 5-10 экземпляров MongoClient, работающих здесь, на разных клиентских компьютерах, подключенных к главному серверу? – clifgray

+0

Конечно, сервер MongoDB предназначен для обработки тысяч, даже десятков тысяч, одновременных клиентов. –

Смежные вопросы