用途
Beanie ODM 技能用于在 Python 异步应用中集成 MongoDB,基于 Motor 异步驱动,并针对 FastAPI 应用进行了优化。它提供了一套完整的模式与代码示例,帮助开发者以类型安全、异步的方式定义数据模型、执行查询、构建聚合管道、管理索引和事务。
主要能力
数据库初始化
技能展示了如何使用 init_beanie 和 AsyncIOMotorClient 建立数据库连接,并通过 Pydantic Settings 管理配置(如 MongoDB URL 和数据库名称)。
文档模型
支持定义基础文档、带关系的文档(使用 Link 和 BackLink)以及嵌入式文档(继承 Pydantic BaseModel)。文档可配置集合名称、状态管理以及 JSON Schema 示例。
查询模式
涵盖基础 CRUD 操作(创建、读取、更新、删除)以及高级查询,包括使用 In、RegEx、And、Or 等操作符,分页、排序和投影。
聚合管道
提供聚合管道的编写示例,包括 $match、$group 等阶段,并展示如何通过 Beanie 的聚合查询接口执行。
索引
支持单字段索引(通过 Indexed)、复合索引、文本索引和 TTL 索引,可在文档的 Settings 中通过 IndexModel 定义。
事务
展示如何在 Beanie 中使用 MongoDB 事务,通过 session.start_transaction() 实现原子操作,例如资金转账。
服务层模式
提供 UserService 示例,封装常见的数据库操作(按 ID 查询、按邮箱查询、分页查询、创建、更新),便于在应用中进行业务逻辑分层。
使用方式
该技能以代码示例和模式说明的形式提供,开发者可直接参考或复制到自己的项目中。示例涵盖从初始化到服务层的完整流程,并附有参考文件(如迁移策略、性能优化、关系模式)和可运行示例文件(文档模型、聚合、服务层)。
适用场景
- 使用 FastAPI 构建异步 Python 后端
- 需要以 MongoDB 作为主数据库
- 希望使用 ODM 获得类型安全和清晰的模型定义
- 需要处理复杂查询、聚合、索引或事务
限制
资料中未提供关于收费、价格、平台支持范围或具体性能指标的说明。部分高级功能(如迁移策略、性能优化细节)仅在参考文件中提及,未在正文展开。