如何从目标表中找到源表中的数据?

时间:2018-09-16 16:26:48

标签: node.js postgresql sequelize.js sequelize-cli

我有两个表tradersmessages

交易者与消息关联如下

traders.hasMany(models.messages, {as: 'sender',foreignKey : 'senderId'});
traders.hasMany(models.messages, {as: 'reciever',foreignKey : 'recieverId'});

现在,当我尝试使用以下代码查找交易者名称以及所有消息

   ctx.body = await ctx.db.messages.findAll({
        include:[{
            model: ctx.db.traders,
            as:'sender'
        }],
        attributes:['type',['data','message'],'createdAt','senderId','name'],
        where:{
            conversationId:ctx.request.body.conversationId
        }
    })

我收到以下错误

SequelizeEagerLoadingError: traders is not associated to messages!

1 个答案:

答案 0 :(得分:0)

尝试从两个模型中进行关联,

traders.hasMany(models.messages, {
    as: 'sender',
    foreignKey: 'senderId'
});

messages.belongsTo(models.traders, {
    as: 'sender',
    foreignKey: 'senderId'
});