Sequelize,其中relation.attribute等于

时间:2015-04-14 09:53:25

标签: javascript node.js sequelize.js

我有以下定义:

var Team = sequelize.define('academy_team', {
    id: DataTypes.INTEGER,
    name: DataTypes.STRING,
    academy_id: DataTypes.INTEGER,
    is_complete: DataTypes.INTEGER,
    started: DataTypes.INTEGER
}, {
    freezeTableName: true,
    instanceMethods: {
        startedTeams: function(onSuccess, onError) {
            Team.findAll({
                    include: [{
                        all: true
                    }],
                    where: {
                        model: academy,
                        division_id: 19
                    }
                }, {})
                .ok(onSuccess).error(onError);
        }
    }
});

academy = sequelize.define('academy', {
    id: DataTypes.INTEGER,
    name: DataTypes.STRING,
    organization_id: DataTypes.INTEGER,
    division_id: DataTypes.INTEGER,
    status_id: DataTypes.INTEGER
}, {
    freezeTableName: true,
    instanceMethods: {}
});

具有以下关系:

Team.belongsTo(academy, {foreignKey: 'academy_id'});

现在你可以从我的(失败的)尝试中看到我正在尝试选择academy.division_id = 19的球队。

然而,这不起作用

我也尝试了以下内容:

Team.findAll({include: [{all: true}], where: {division_id: 19 }}, {})
.ok(onSuccess).error(onError);

遗憾的是,这产生了以下sql:

where academy_team.division_id = 19

1 个答案:

答案 0 :(得分:1)

如果您需要条件

,则无法使用全部包含
Team.findAll({
  include: [
    { model: academy, where: { division_id: 19 }
  ]
});