保持对DB和集合MongoDB python的引用

时间:2017-07-03 17:08:35

标签: python mongodb python-2.7 pymongo

我想知道如果我将数据库和集合作为类成员的引用保持不变吗?

喜欢那个

from pymongo import MongoClient


class ClientDataStore(object):
    BASE_MONGO_CONNECTION_URL = 'mongodb://localhost:27017/'
    MAIN_DB_NAME = "bank"
    CLIENT_COLLECTION_NAME = "client"

    def __init__(self):
        self.mongo = MongoClient(ClientDataStore.BASE_MONGO_CONNECTION_URL)
        self.db = self.mongo[ClientDataStore.MAIN_DB_NAME]
        self.client_collection = self.db[ClientDataStore.CLIENT_COLLECTION_NAME]

    def get_client_info(self, id):
        client = self.client_collection.find_one({"_id": id})
        return client

它会保持打开的连接还是会在必要时打开它?

或者我应该打开数据库并在我需要时才收集所有这些?

由于

1 个答案:

答案 0 :(得分:0)

这是一个好主意。 MongoClient有一个连接池,可以无限期地保持打开的连接。保持开放连接可以减少延迟并提高应用程序的吞吐量。请参阅Connection Pool FAQ for PyMongo