水线查询类似于HQL

时间:2014-11-14 05:22:29

标签: javascript node.js hql sails.js waterline

我在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中实现相同功能,现在我正在运行两个查询,一个用于获取用户,另一个用于获取该用户的公司。有没有什么方法可以合二为一?

还有一件事,水线如何处理我们需要直接从外键获取内容的情况,即如果我获得用户数据,那么我可以通过调用来获取公司详细信息:

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
})

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

User.findOne({id: 1})
    .populate('company')
    .exec(function(err, user) {
        if(err){
            //handle errors      
        }else{
            //do stuff
        }
    });

这应该从关联(外键)中获取值。