Orm 通过联接表进行Sails查询

Orm 通过联接表进行Sails查询,orm,sails.js,Orm,Sails.js,在sails中,我需要函数通过引用表获取行。差不多 Child.find({ parent.age: 30 }) 或者使用SQL语言 SELECT child.* FROM child JOIN parent ON child.parent_id = parent.id WHERE parent.age = 30 到目前为止,我已经编写了uggly函数,它分3步完成工作: get_children_in_celebration: function(req, res) {

在sails中,我需要函数通过引用表获取行。差不多

Child.find({ parent.age: 30 })
或者使用SQL语言

SELECT child.* FROM child JOIN parent ON child.parent_id = parent.id WHERE parent.age = 30
到目前为止,我已经编写了uggly函数,它分3步完成工作:

    get_children_in_celebration: function(req, res) {

      // 1. Get parend ids
      Parent.find({ select: ['id'], age: 30}).exec(function(err_parents, res_parents) {

        // 2. Collect them to array suitable for next query
        var parent_ids = [];
        for(var i = 0; i < res_parents.length; i++) {
          parent_ids[i] = res_parents[i].id;
        }

        // Get their children
        Child.find({ parent_id: parent_ids }).exec(function(err_children, res_children) {
          return res.json(res_children);
        });
      });
    },
get_children_in_庆祝活动:函数(req,res){
//1.获取parend ID
find({select:['id'],age:30}).exec(函数(err_parents,res_parents){
//2.将它们收集到适合下一次查询的数组中
var parent_id=[];
对于(var i=0;i

第一个查询返回约5000个父项,因此加在一起意味着数据库的负载很重。sails是否提供了更好的解决方案?

否,sails不支持对关联表进行筛选。我也有类似的问题,使用了相同的原始查询

Model.query("select * from table", function (error, response) {})

不幸的是没有。。。