如何按包含的模型过滤结果?

时间:2017-07-14 12:49:09

标签: sql node.js sequelize.js

我在使用sequelize查询过滤结果时遇到问题,如下所述。

用户模型:

var User = db.define('User', {
  email: {
    type: types.STRING,
    unique: true
  },
  password: {
    type: types.STRING
  },
  firstName: {
    type: types.STRING
  },
  lastName: {
    type: types.STRING
  },
  type: {
    type: types.INTEGER
  }
});

用户服务模型:

var UserServices = db.define('UserServices', {
  service: {
    type: types.INTEGER
  }
});


var Countries = db.define('Countries', {
  name: {
    type: types.STRING
  },
  code: {
    type: types.STRING(10)
  }
});

关系:

User.hasMany(UserServices);
UserServices.belongsTo(User);

Countries.hasMany(User);
User.belongsTo(Countries);

问题如下:如何过滤掉属于指定国家/地区的用户,具有特定服务和指定用户类型?

我现在要做的是遵循(不按预期工作):

User.findAll({
  where: {
    type: 3
  },
  inlcude: [{
    model: Countries,
    where: {
      id: 2
    }
  }, {
    model: UserServices,
    where: {
      service: [1, 2, 3]
    }
  }]
}).then((user) => {
...
})

0 个答案:

没有答案