File size: 883 Bytes
a317be6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from motor.motor_asyncio import AsyncIOMotorClient
from .config import get_settings

settings = get_settings()


class Database:
    """MongoDB database connection manager."""
    
    client: AsyncIOMotorClient = None
    
    
db = Database()


async def connect_to_mongo():
    """Connect to MongoDB on application startup."""
    db.client = AsyncIOMotorClient(settings.mongodb_url)
    print(f"Connected to MongoDB at {settings.mongodb_url}")
    

async def close_mongo_connection():
    """Close MongoDB connection on application shutdown."""
    if db.client:
        db.client.close()
        print("Closed MongoDB connection")


def get_database():
    """Get the database instance."""
    return db.client[settings.database_name]


def get_collection(collection_name: str):
    """Get a specific collection from the database."""
    return get_database()[collection_name]