在sequelize中访问表用户

时间:2018-04-21 13:00:01

标签: javascript node.js sequelize.js

当我申请朋友表时,如何获取2位用户的信息?

我的桌面朋友的格式如下:

id X , UserId : 1 , idFriend : 3, ...

我的表格用户格式如下:

id X , name , mail , ...

当我在查询中链接模型用户时,我只获取UserID的信息,但我没有获得有关idFriend的信息

我的要求是

models.Friend.findAll({
                    where: {
                        $or: [{
                            idFriend: userFound.id
                        },
                        {
                            UserID: userFound.id
                        }],
                        status: "pending"
                    },
                    include: [
                        { model: models.User },
                    ]
                })

我该怎么做?

1 个答案:

答案 0 :(得分:1)

首先在朋友模型中定义这样的关联:

Friend.belongsTo(User, { foreignKey : 'UserID', constraints: false});
Friend.belongsTo(User, { as: 'friend', foreignKey : 'idFriend' , constraints:false});

第二件事包括这样的模型:

models.Friend.findAll({
    where: {
        $or: [{
            idFriend: userFound.id
        },
        {
            UserID: userFound.id
        }],
        status: "pending"
    },
    include: [
        { 
            model: models.User , 
            required : false,
            where : { id : userFound.id }
        },{
            model: models.User , 
            as : 'friend', // <--------- Magic is here
            required : false,
            where : { id : userFound.id }
        }
    ]
})