Silos/backend/app/mongo.py
2026-10-08 02:44:15 +05:30

26 lines
688 B
Python

from motor.motor_asyncio import AsyncIOMotorClient, AsyncIOMotorDatabase
from app.config import settings
mongo_client: AsyncIOMotorClient | None = None
mongo_db: AsyncIOMotorDatabase | None = None
async def connect_mongo() -> None:
global mongo_client, mongo_db
mongo_client = AsyncIOMotorClient(settings.mongodb_url)
mongo_db = mongo_client[settings.mongodb_db]
async def close_mongo() -> None:
global mongo_client, mongo_db
if mongo_client:
mongo_client.close()
mongo_client = None
mongo_db = None
def get_mongo_db() -> AsyncIOMotorDatabase:
if mongo_db is None:
raise RuntimeError("MongoDB is not connected")
return mongo_db