Sequelize-关联查询中

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

image-20220123131148783

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.js~HasOne.html

image-20220123131529748

// 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));

image-20220123131831162

let book = await Book.findOne({
    where: {
        id: 1
    },
    include: {
        model: User
    }
});

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

image-20220123132022615

posted @ 2022-01-23 13:21  BNTang  阅读(160)  评论(0编辑  收藏  举报