我有以下三种关系的Sequelize模型:
ParentModel -> ChildModel -> ExpensiveRelationshipModel
默认范围ChildModel
包括ExpensiveRelationshipModel
,并且我正在为ParentModel
创建一个新范围,它不需要这种昂贵的关系中的数据,因此我想删除它。
ChildModel
的默认范围:
ChildModel.addScope(
'defaultScope',
{
include: [
{ model: db.ExpensiveRelationshipModel, as: 'expensiveRelationship' }
]
}
)
我正在为ParentModel
写一个新的作用域,我希望它包括ChildModel
,但排除ExpensiveRelationshipModel
。我为ParentModel
撰写的范围是:
ParentModel.addScope(
'for-recently-viewed',
{
include: [
{
model: ChildModel,
as: 'child'
}
]
}
)
这将导致使用ChildModel
的默认范围,因此包含了我不需要的ExpensiveRelationshipModel
。
我想在此范围内指定以消除ChildModel
和ExpensiveRelationshipModel
之间的昂贵关系。如何在Sequelize 4中做到这一点?
答案 0 :(得分:1)
如果使用Model.scope('smaller-scope')
,则不会使用默认范围。