Javascript Sequelize-基于特定属性包含

Javascript Sequelize-基于特定属性包含,javascript,sql,node.js,postgresql,sequelize.js,Javascript,Sql,Node.js,Postgresql,Sequelize.js,我有一个定义如下的模型: sequelize.define('game', { id: { type: type.INTEGER, primaryKey: true, autoIncrement: true, }, leaderId: { type: type.INTEGER, allowNull: false, references: { model:

我有一个定义如下的模型:

sequelize.define('game', {
    id: {
        type: type.INTEGER,
        primaryKey: true,
        autoIncrement: true,
    },
    leaderId: {
        type: type.INTEGER,
        allowNull: false,
        references: {
            model: 'users',
            key: 'id',
        },
    },
    playerId: {
        type: type.INTEGER,
        allowNull: false,
        references: {
            model: 'users',
            key: 'id',
        },
    },
    status: {
        type: type.STRING,
        defaultValue: 'running',
    },
    notes: {
        type: type.TEXT,
    },
});
我正在尝试使用Sequelize加载所有
游戏
对象,并包含id等于
玩家id
字段的
用户

问题是我有两个属性(
leaderId
playerId
),它们引用了
用户
模型,因此按如下方式使用
包含
不起作用:

Game.findAll({
    where: conditions,
    include: [{ model: User }],
})
是否有方法指定
include
命令应该使用哪个属性

const game = sequelize.define('game', {
    id: {
        type: type.INTEGER,
        primaryKey: true,
        autoIncrement: true,
    },
    leaderId: {
        type: type.INTEGER,
        allowNull: false,
        references: {
            model: 'users',
            key: 'id',
        },
    },
    playerId: {
        type: type.INTEGER,
        allowNull: false,
        references: {
            model: 'users',
            key: 'id',
        },
        as:'player'
    },
    status: {
        type: type.STRING,
        defaultValue: 'running',
    },
    notes: {
        type: type.TEXT,
    },
});

game.associate = function (models) {
   game.belongsTo(models.user, {
      foreignKey: "playerId",
      as: "player",
   });

   game.belongsTo(models.user, {
      foreignKey: "leaderId",
      as: "leader",
   });
};

Game.findAll({
    where: conditions,
    include: ['player'],
})

Or

Game.findAll({
    where: conditions,
    include: [{model: User, as: 'player' }],
})

Or

Game.findAll({
    where: conditions,
    include: [{model: User, as: 'player', foreignKey: 'playerId' }],
})