Core Components
Core Components
1. MongoConnectionManager
Manages MongoDB connections with async lifecycle. Methods:
connect(uri, db_name, **kwargs)- Connect to MongoDBdisconnect()- Close connectionget_database()- Get current database instanceget_client()- Get current client instancelifespan(uri, db_name, **kwargs)- Context manager for FastAPI lifespan
2. BaseDocument
Base model for all MongoDB documents. Provides:
id(aliased to_id) - ObjectIdcreated_at- Auto-generated timestampupdated_at- Auto-updated timestamp
3. BaseRepository[T]
Generic repository with CRUD operations:
create(data: T) -> Tget_by_id(id: str | ObjectId) -> Optional[T]get_many(filter, skip, limit, sort) -> List[T]update(id, data: Dict) -> Optional[T]delete(id) -> boolcount(filter) -> int
4. TransactionManager
Handles multi-document transactions:
start_session()- Context manager for transactionsexecute_transaction(operations)- Execute multiple operations atomically
5. ModelRegistry
Register and initialize models:
register(collection_name, model, indexes)- Register a modelinitialize_all()- Create all indexesget_model(collection_name)- Get registered modellist_collections()- List all registered collections