39 lines
809 B
Python
39 lines
809 B
Python
"""
|
|
Database connection management
|
|
"""
|
|
from pymongo import MongoClient
|
|
from pymongo.database import Database
|
|
from app.config import Config
|
|
|
|
_config = Config()
|
|
_client: MongoClient = None
|
|
_db: Database = None
|
|
|
|
def get_database() -> Database:
|
|
"""
|
|
Get MongoDB database instance
|
|
|
|
Returns:
|
|
MongoDB database instance
|
|
"""
|
|
global _db, _client
|
|
|
|
if _db is None:
|
|
_client = MongoClient(
|
|
_config.mongodb_uri,
|
|
maxPoolSize=_config.mongodb_max_pool_size,
|
|
minPoolSize=_config.mongodb_min_pool_size
|
|
)
|
|
_db = _client[_config.mongodb_database]
|
|
|
|
return _db
|
|
|
|
def close_database():
|
|
"""Close database connection"""
|
|
global _client, _db
|
|
if _client:
|
|
_client.close()
|
|
_client = None
|
|
_db = None
|
|
|