我有两个相关的数据对象,User和userAttributes。用户拥有多个userAttributes。
我希望找到一个在userAttributes中具有相关值的用户。首先我想我可以像这样搜索相关的表:
userAttribute.findOrCreate({where: {'name': 'fbprofile', 'value': profile.id }})
.spread((userAttribute, created) => {
if(created){...}else{...}
})
但我意识到我仍然需要根据关联来查找用户。
有没有办法根据关联找到记录?
答案 0 :(得分:0)
您可以轻松使用eager loading。
userAttribute.findOrCreate({
where: {'name': 'fbprofile', 'value': profile.id },
include: [ User ]
})
.spread((userAttribute, created) => {
if(created){
doSomethingWith(userAttribute.user);
}
else{...}
});
请注意,您现在可以访问userAttribute的属性“user”。
如果创建了(未找到)userAttribute对象,您当然也应该创建用户对象。
编辑:顺便说一句,您必须将userAttribute与用户相关联,如果您还没有这样做,请通过
userAttribute.belongsTo(User);