我在Sails中有如下模型:
用户模型
attributes: {
firstName: {
type: 'string',
required: true
},
lastName: {
type: 'string',
required: true
},
company: {
model: 'Company'
}
}
公司
name: {
type: 'string',
required: true,
unique: true
},
description: {
type: 'string',
required: true
}
在 HQL 查询中,为了让用户在特定公司工作,我们使用如下内容:
Select * from User where company.name=?
我如何在 Sails 中实现相同的目标,现在我正在运行两个查询,一个用于获取用户,另一个用于获取该用户的公司。有什么方法可以将两者合二为一吗?
还有一件事,waterline 如何处理我们需要直接从外键中获取某些内容的情况,即如果我获得用户数据,那么我可以通过调用来获取公司详细信息:
User.findOne({id:1}, function(err, res){
//Res contains user data with just companyId now,
//how can i get whole company object here
var companyName = res.company.name; //This is not working currently
})
尝试这样的事情:
User.findOne({id: 1})
.populate('company')
.exec(function(err, user) {
if(err){
//handle errors
}else{
//do stuff
}
});
这应该从关联(外键)中获取值。