用途:这是 MX Space 项目使用的 TypeGoose 模型模式,适用于创建数据模型、定义 schema 或处理 MongoDB 操作时参考。
主要能力:提供基础模型写法(@modelOptions 设置 customName 与 allowMixed,继承 BaseModel);模型继承体系(BaseModel 含 _id、created、updated,WriteBaseModel 含 title、text、images、meta、modified,BaseCommentIndexModel 支持评论);字段装饰器(required、default、unique、trim、index);类级索引(@index,含文本索引);引用(ref 与 autopopulate 虚拟字段);嵌套对象(子文档类,_id: false);数组(type: () => [String] 等);插件(mongoosePaginate、aggregatePaginate、autoPopulate);protectedKeys 静态方法;模型注册(database.models.ts 的 databaseModels 数组)。
使用方式:在服务中通过 @InjectModel 注入模型,类型为 ReturnModelType 与 AggregatePaginateModel;查询用 lean() 返回普通对象,分页用 paginate,聚合分页用 aggregatePaginate;常见查询包括条件查询、排序、字段选择、populate、countDocuments、findByIdAndUpdate、findByIdAndDelete。
适用场景:MX Space 项目内需要定义或维护 MongoDB 数据模型、编写服务层数据库操作时。
限制:资料仅覆盖上述模式,未提供安装命令、版本要求、完整项目配置或错误处理细节;具体字段与继承类需以项目实际代码为准。