Repository
概览
在一个给定的 Collection 对象上,可以获取到它的 Repository 对象来对数据表进行读写操作。
查询
基础查询
在 Repository 对象上,调用 find* 相关方法,可执行查询操作,查询方法都支持传入 filter 参数,用于过滤数据。
操作符
Repository 中的 filter 参数,还提供了多种操作符,执行更加多样的查询操作。
操作符的更多详细信息请参考 Filter Operators。
字段控制
在查询操作时,通过 fields, except, appends 参数可以控制输出字段。
fields: 指定输出字段except: 排除输出字段appends: 追加输出关联字段
关联字段查询
filter 参数支持按关联字段进行过滤,例如:
关联字段也可进行嵌套
排序
通过 sort 参数,可以对查询结果进行排序。
也可按照关联对象的字段进行排序
创建
基础创建
通过 Repository 创建新的数据对象。
创建关联
创建时可以同时创建关联对象,和查询类似,也支持关联对象的嵌套使用,例如:
若关联对象已在数据库中,可传入其ID,创建时会建立与关联对象的关联关系。
更新
基础更新
获取到数据对象后,可直接在数据对象(Model)上修改属性,然后调用 save 方法保存修改。
数据对象 Model 继承自 Sequelize Model,对 Model 的操作可参考 Sequelize Model。
也可通过 Repository 更新数据:
更新时,可以通过 whitelist 、blacklist 参数控制更新字段,例如:
更新关联字段
在更新时,可以设置关联对象,例如:
删除
可调用 Repository 中的 destroy()方法进行删除操作。删除时需指定筛选条件:
构造函数
通常不会直接由开发者调用,主要通过 db.registerRepositories() 注册类型以后,在 db.colletion() 的参数中指定对应已注册的仓库类型,并完成实例化。
签名
constructor(collection: Collection)
示例
实例成员
database
上下文所在的数据库管理实例。
collection
对应的数据表管理实例。
model
对应的数据模型类。
实例方法
find()
从数据库查询数据集,可指定筛选条件、排序等。
签名
async find(options?: FindOptions): Promise<Model[]>
类型

