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

Where condition on populated model does not work in 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'
    }
  }
}

我一直不明白为什么 Waterline 会这样...

但这里有一个简单的方法:

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

编辑: 自 2017 年 1 月 31 日起,额外的填充似乎不再是强制性的。虽然没有检查它更改的版本