Awe*_*SIM 8 node.js sequelize.js
我有以下模型层次结构:
User.hasMany(Child);
Child.hasMany(Profile);
Run Code Online (Sandbox Code Playgroud)
一旦我User加载了一个对象,我需要根据以下逻辑加载它Children和它们的关联Profiles:
Children的User,排序name.Child,加载前三个Profiles反向排序依据id.有没有办法限制和排序渴望加载Profiles?我可以限制和排序Children但不是Profiles.
user.getChildren({
limit: 10,
order: [['name', 'ASC']],
include: [{
model: Profile,
limit: 3, <-- HAS NO EFFECT!!!
order: [['id', 'DESC']] <-- HAS NO EFFECT!!!
}]
});
Run Code Online (Sandbox Code Playgroud)
我能使它工作的唯一方法是执行以下操作:
user.getChildren({
limit: 10,
order: [['name', 'ASC']]
}).then(function(children) {
user.children = children;
_.each(children, function(child) {
child.getProfiles({
limit: 3,
order: [['id', 'DESC']]
});
});
});
Run Code Online (Sandbox Code Playgroud)
这在我看来都很糟糕,需要额外的代码才能确保Children在所有Children加载之前我都没有访问过.
有没有办法在构造中指定limit和order选项include[]?
不确定limit,但我尝试了一个简单的方法order,效果很好:
user.getPets({
order: 'type ASC'
})
Run Code Online (Sandbox Code Playgroud)
推而广之,我认为 limit 也有效?
| 归档时间: |
|
| 查看次数: |
1116 次 |
| 最近记录: |