填充模型的条件在水线中不起作用

时间:2016-06-29 16:36:22

标签: node.js sails.js waterline

我在sails.js中使用水线并尝试查找“User”模型的所有记录,其相关的“Car”模型的id位于指定列表中,如下所示:

var list = [3, 4, 5];
User.find().populate('car', {
    where: {
      id: list
    }
  }).exec(function(err, foundUsers){
    console.log(foundUsers);
  });

问题是无论列表值如何都会执行查询,并返回所有记录。该标准应该如何应用?

模型定义如下:

//User:
module.exports = {
  connection: 'mysqlConnection',
  attributes: {
    id: {
      type: 'integer',
      primaryKey: true,
      autoIncrement: true
    },
    car: {
      model: 'Car'
    }
  }
}
//Car:
module.exports = {
  connection: 'mysqlConnection',
  attributes: {
    id: {
      type: 'integer',
      primaryKey: true,
      autoIncrement: true
    },
    title: {
      type: 'string'
    }
  }
}

1 个答案:

答案 0 :(得分:0)

我从未理解为什么Waterline表现得像这样......

但这是一个简单的方法:

var list = [3, 4, 5];
User
  .find({ car: list })
  .populate('car')
  .exec(function(err, foundUsers){
    console.log(foundUsers);
  });

编辑:从2017年1月31日起,额外的人数不再是强制性的了。没有检查它改变的版本