Sequelize-关联查询中

作者: adm 分类: node 发布时间: 2023-02-21

本文主要介绍的内容为一对多的关系如何进行绑定与查询,首先添加一对多的数据,添加 book 表即可:


INSERT INTO `demo`.`book` (`id`, `name`, `price`, `uId`) VALUES (4, '玩转.net', 66, 1);
INSERT INTO `demo`.`book` (`id`, `name`, `price`, `uId`) VALUES (5, '玩转Less', 66, 4);
INSERT INTO `demo`.`book` (`id`, `name`, `price`, `uId`) VALUES (6, '玩转Sass', 66, 5);

建立查询关系
官方文档:https://sequelize.org/v5/class/lib/associations/has-one.jHasOne.html


// 4.建立查询关系
// 一个人拥有多本书
User.hasMany(Book, {
    foreignKey: 'uId',
    sourceKey: 'id'
});

// 一本书属于一个人
Book.belongsTo(User, {
    foreignKey: 'uId',
    sourceKey: 'id'
});
let user = await User.findOne({
    where: {
        id: 1
    },
    include: {
        model: Book
    }
});

console.log(user.dataValues.books.map(b => b.dataValues));
let book = await Book.findOne({
    where: {
        id: 1
    },
    include: {
        model: User
    }
});

console.log(book.dataValues.user.dataValues);

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!