我在下面的关系中有三个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
之间昂贵的关系。我如何在Sequelize4中做到这一点?
发布于 2019-07-04 11:13:58
如果使用Model.scope('smaller-scope')
,则不会使用默认作用域。
https://stackoverflow.com/questions/56886703
复制相似问题